________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 39
Modul Praktikum 5
Pemograman Berorientasi Objek
1. Judul : Class String, Cluss StringBuffer dan Class Math
2. Tujuan Percobaan :
Diakhir praktikum, mahasiswa diharapkan mampu :
• Menggunakan class string yang telah ada pada package java.lang
• Menggunakan class stringBuffer yang telah ada pada package java.lang
• Menggunakan class Math yang telah ada pada package java.lang
3. Teori Singkat
Java datang dengan beberapa class built-in yang bermanfaat. Mari kita membahas beberapa class dalam package iava.lang yang sering digunakan dalam pemrograman Java tingkat dasar.
3.1 Class String
Class String disediakan oleh Java SDK dengan menggunakan kombinasi character literals. Tidak seperti bahasa pemrograman lainnya,seperti C atau C++, strings dapat digunakan menggunakan array dari karakterr atau disederhanakan dengan menggunakan class String. Sebagai catatan, bahwa sebuah objek String berbeda dari sebuah array dari character.
a. Constructor String
Class String mempunyai 75 constructor (JDK 1.6). Untuk melihat detail tentang constructor-constructor ini, unduh dan baca document java API. Berikut ini deskripsi singkat beberapa constructor dari class String:
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 40
Menginisialisasi obyek String baru dibuat sehingga merepresentasikan urutan karakter kosong.
String (byte [] bytes)
Membangun sebuah String baru yang ditentukan oleh decoding array byte yang menggunakan platform default charset.
String (byte [] bytes, Charset charset)
Membangun sebuah string baru ditetapkan oleh decoding array byte yang ditentukan.
String (String original)
Menginisialisasi sebuah objek String baru dibuat sehingga merupakan urutan yang sama karakter sebagai argumen; dengan kata lain, String yung buru dibuat adalah salinan dari argumen String.
String (StringBuffer buffer)
Mengalokasikan sebuah string baru yang berisi urutan karakter saat ini terdapat dalam argumen StringBuffer.
String (StringBuilder builder)
Mengalokasikan sebuah string baru yang berisi urutan karakter saat ini terkandung dalam pembangun argumen StringBuilder. b. Method-method dalam class String
Berikut ini ini adalah daftar dari beberapa method dalam class String yang sering digunakan:
public char charAt(int index)
Mengirim karakter di indeks yang dispesifikasikan oleh parameter index.
public int compareTo(String anotherString)
Membandingkan dua String dan mengirim bilangan int yang menspesifikasikan apakah objek string pemanggil kurang dari atau
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 41
sama dengan anotherString. Bernilai negative jika objek yang dilewatkan (passed string) lebih besar, 0 jika kedua string sama, dan bernilai positif jika objek string pemanggil (calling string) lebih besar.
public int compareToIgnoreCase(String str) Serupa dengan compareTo tetapi case insensitivity. public boolean equals(Object anObject)
Menghasilkan nilai true jika parameter tunggalnya tersusun dari karakter yang sama dengan objek tempat Anda memanggil equals. Sedangkan jika parameter yang dispesifikkan bukan sebuah objek String atau jika tidak cocok dengan urutan symbol pada string, method akan dikembalikan dengan nilai false.
public boolean equalsIgnoreCase(String StringLain) Serupa dengan equals tetapi case insensitivity.
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Mendapatkan characters dari string yang dimulai pada index srcBegin hingga index srcEnd dan mengkopi character-character tersebut pada array dst dimulai pada index dstBegin.
public int length() Menghasilkan panjang String.
public String replace(char oldChar, char newChar) Mengganti karakter, semua yang kemunculan oldChar diganti newChar.
public String substring(int beginIndex, int endIndex)
Mengirim substring dimulai dari indeks yang dispesifikasikan beginIndex dan berakhir dengan indeks yang dispesifikasikan endIndex.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 42
public char[] toCharArray()
Menghasilkan array bertype char yang ekuivalen dengan String. public String trim()
Menghilangkan whitespace di awal dan akhir objek String.
public static String valueOf()
Dapat menggunakan tipe data sederhana seperti boolean, integer atau character, atau juga menggunakan sebuah objek sebagai parameter. Mengirim objek String yang merepresentasikan tipe tertentu yang dilewatkan sebagai parameter.
3.2 Class StringBuffer
Ketika objek String diciptakan, objek String tidak bisa lagi dimodifikasi. Objek StringBuffer serupa dengan objek String, kecuali kenyataan bahwa objek StringBuffer bersifat dapat berubah atau dapat dimodifikasi, sedangkan pada object String bersifat konstan. Panjang dan isi dapat diubah hingga beberapa pemanggilan method.
lni adalah beberapa method pada class StringBuffer. Lihatlah acuan pada dokumentasi Java API untuk detailnya.
public int capacity()
Mengirim jumlah memori yang dialokasikan untuk StringBuffer. public StringBuffer append()
Appends merepresentasikan string dari argument untuk objek StringBuffer. Menggunakan parameter tunggal seperti tipe-tipe data berikut: boolean, char, char [], double, float, int, long, Object, String and StringBuffer. Masih mempunyai versi yang di-overload lainnya.
public char charAt(int index)
Mengirim character di lokasi tertentu di StringBuffer yang dispesifikasikan parameter index.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 43
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Mendapatkan characters dari objek yang dimulai pada indeks srcBegin hingga indeks srcEnd dan mengkopi character- character tersebut pada array dst dimulai pada indeks dstBegin.
public StringBuffer delete(int start, int end) Menghapus character-character pada range yang ditentukan.
public StringBuffer insert(int offset, -) Menyisipkan beragam tipe data di offset spesifik di StringBuffer. Sebuah method yang di-overload. Tipe data yang mungkin digunakan: boolean, char, char [], double, float, int, long, Object and String. Masih mempunyai versi yang di-overload lainnya.
public int length()
Memperoleh panjang atau jumlah character di objek StringBuffer. public StringBuffer replace(int start, int end, String str)
Mengganti bagian dari objek, seperti yang dispesifikasikan oleh argument satu dua, dengan spesifikasi string str.
public String substring(int start, int end)
Substring menyaring bagian tertentu dari string, dimulai pada pengspesifikasian indeks start hingga indeks the end.
public String toString()
Mengkonversi objek ke representasi string. 3.3 Class Math
Java juga menyediakan konstanta dan method untuk menunjukkan perbedaan operasi matematika seperti fungsi trigonometri dan logaritma. Selama method-method ini semua static, Anda dapat menggunakannya tanpa memerlukan sebuah objek Math. Untuk melengkapi daftar konstanta dan method-method ini, lihatlah acuan pada dokumentasi Java API.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 44
Dibawah ini beberapa method-method umum yang sering digunakan. public static double abs(double a)
Menghasilkan nilai mutlak a. Sebuah method yang di-overload. Dapat juga menggunakan nilai float atau integer atau juga long integer sebagai parameter, dengan kondisi tipe kembalinya juga menggunakan float atau integer atau long integer, secara berturut-turut.
public static double random()
Menghasilkan nilai positif bilangan acak (random) yang lebih besar atau sama dengan 0.0 tetapi kurang dari 1.0.
public static double max(double a, double b)
Menghasilkan nilai maksimum, diantara dua nilai double, a and b. Sebuah method yang di-overload. Dapat juga menggunakan nilai float atau integer atau juga long integer sebagai parameter, dengan kondisi tipe kembalinya juga menggunakan float atau integer atau long integer, secara berturut-turut.
public static double min(double a, double b)
Menghasilkan nilai minimum diantara dua nilai double, a and b. Sebuah method yang di-overload. Dapat juga menggunakan nilai float atau integer atau juga long integer sebagai parameter, dengan kondisi tipe kembalinya juga menggunakan float atau integer atau long integer, secara berturut-turut.
public static double ceil(double a)
Menghasilkan bilangan bulat terkecil yang lebih besar atau sama dengan a.
public static double floor(double a)
Menghasilkan bilangan bulat terbesar yang lebih kecil atau sama dengan a.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 45
public static double exp(double a) Menghasilkan angka Euler, e pangkat a. public static double log(double a)
Menghasilkan logaritma natural dari a.
public static double pow(double a, double b) Menghasilkan a pangkat b.
public static long round(double a)
Menghasilkan pembulatan keatas ke long terdekat. Sebuah method yang di-overload. Dapat juga menggunakan float pada argument dan akan menghasilkan pembulatan ke atas ke int terdekat.
public static double sqrt(double a) Menghasilkan akar kuadrat a.
public static double sin(double a) Menghasilkan sinus sudut a dalam radian.
public static double toDegrees(double angrad)
Menghasilkan nilai derajat yang kira-kira setara dengan nilai radian yang diberikan.
public static double toRadians(double angdeg)
Menghasilkan nilai radian yang kira-kira setara dengan nilai derajat yang diberikan.
4. Alat dan Bahan
PC dengan sistem operasi Windows dan Java compiler.
5. Prosedur Percobaan
5.1 Penggunaan constructor String
Source-code Java dibawah ini mendemonstrasikan penggunaan constructor String. Ketiklah dan coba fahami hasilnya.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 46
1. class StringConstructorsDemo {
2. public static void main(String args[]) {
3. // membuat String kosong
4. String s1 = new String();
5. char chars[] = { 'h', 'e', 'l', 'l', 'o'};
6. // s2 = "hello";
7. String s2 = new String(chars);
8. byte bytes[] = { 'w', 'o', 'r', 'l', 'd' };
9. // s3 = "world"
10. String s3 = new String(bytes);
11. String s4 = new String(chars, 1, 3);
12. String s5 = new String(s2);
13. String s6 = s2; 14. System.out.println(s1); 15. System.out.println(s2); 16. System.out.println(s3); 17. System.out.println(s4); 18. System.out.println(s5); 19. System.out.println(s6); 20. } 21. }
5.2 Penggunaan class String
Source-code Java dibawah ini mendemonstrasikan penggunaan class String. Ketiklah dan coba fahami hasilnya
1. class StringDemo {
2. public static void main(String args[]) {
3. String nama = "Amin";
4. System.out.println("nama: " + nama);
5. System.out.println("Karakter ketiga dari nama: "
+ nama.charAt(2));
6. /* karakter yang pertama nampak secara berurutan
mempunyai nilai unicode lebih kecil */
7. System.out.println("Amin dibanding dengan
Sulaiman: " + nama.compareTo("Sulaiman"));
8. System.out.println("Sulaiman dibanding dengan
Amin: " + "Sulaiman".compareTo("Amin"));
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 47
disbanding 'j' */
10. System.out.println("Amin dibanding dengan amin: "
+ nama.compareTo("Amin"));
11. System.out.println("Amin dibanding dengan Amin
(ignorecase): " +
nama.compareToIgnoreCase("Amin"));
12. System.out.println("Apakah Amin sama dengan amin?
" + nama.equals("Amin"));
13. System.out.println("Apakah Amin sama dengan Amin?
" + nama.equals("Amin"));
14. System.out.println("Apakah Amin sama dengan amin
(ignorecase)? " + nama.equalsIgnoreCase("Amin"));
15. char charArr[] = "Hi XX".toCharArray();
16. /* Membutuhkan tambahan 1 untuk indeks endSrc
dari getChars */ 17. "Amin".getChars(0, 2, charArr, 3); 18. System.out.print("getChars method: "); 19. System.out.println(charArr); 20. System.out.println("Panjang nama: " + nama.length());
21. System.out.println("Ganti ‘a’ dengan ‘e' nama: "
+ nama.replace('a', 'e'));
22. /* Membutuhkan tambahan 1 untuk parameter
endIndex dari substring*/
23. System.out.println("Substring dari nama: " +
nama.substring(0, 2));
24. System.out.println("Trim \" a b c d e f \": \"" + " a b c d e f ".trim() + "\"");
25. System.out.println("String representasi dari
ekspresi 10>10: " + String.valueOf(10>10));
26. /* method toString secara implisit dipanggil
method println */
27. System.out.println("String representasi dari
boolean expression 10<10: " + (10<10));
28. /* Catatan, tidak ada perubahan pada nama objek
String meskipun setelah penggunaan semua method. */
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 48
30. }
31. }
5.3 Penggunaan class StringBuffer
Source-code Java dibawah ini mendemonstrasikan penggunaan class StringBuffer. Ketiklah dan coba fahami hasilnya.
1. class StringBufferDemo {
2. public static void main(String args[]) {
3. StringBuffer sb = new StringBuffer("Sulaiman");
4. System.out.println("sb = " + sb);
5. /* initial capacity adalah 16 */
6. System.out.println("capacity dari sb: " + sb.capacity()); 7. System.out.println("append \'O\' ke sb: " + sb.append("O")); 8. System.out.println("sb = " + sb); 9. System.out.println("Karakter ke 3 dar sb: " + sb.charAt(2));
10. char charArr[] = "Hi XX".toCharArray();
11. sb.getChars(0, 2, charArr, 3);
12. System.out.print("getChars method: ");
13. System.out.println(charArr);
14. System.out.println("Insert \'si\' pada sel ke 3
: " + sb.insert(2, "si"));
15. System.out.println("Delete \'si\' pada sel ke
3: " + sb.delete(2,4)); 16. System.out.println("length dari sb: " + sb.length()); 17. System.out.println("replace: " + sb.replace(3,9, "le")); 18. System.out.println("substring (1st two characters): " + sb.substring(0, 3)); 19. System.out.println("implicit toString(): " + sb); 20. } 21. }
5.4 Penggunaan class Math
Source-code Java dibawah ini mendemonstrasikan penggunaan class Math. Ketiklah dan coba fahami hasilnya.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 49
1. class MathDemo {
2. public static void main(String args[]) {
3. System.out.println("Nilai mutlak dari -5: " +
Math.abs(-5));
4. System.out.println("Nilai mutlak dari 5: " +
Math.abs(-5));
5. System.out.println("Bilangan random (maksimum
adalah 10): " + Math.random()*10);
6. System.out.println("Maksimum dari 3.5 dan 1.2:
" + Math.max(3.5, 1.2));
7. System.out.println("Minimum dari 3.5 dan 1.2: "
+ Math.min(3.5, 1.2));dari 3.5: " + Math.ceil(3.5)); 8. System.out.println("Floor dari 3.5: " + Math.floor(3.5)); 9. System.out.println("e pangkat 1: " + Math.exp(1)); 10. System.out.println("log 10: " + Math.log(10)); 11. System.out.println("10 pangkat 3: " + Math.pow(10,3));
12. System.out.println("Round dari nilai pi: " +
Math.round(Math.PI)); 13. System.out.println("Akar dari 5 = " + Math.sqrt(5)); 14. System.out.println("10 radian = " + Math.toDegrees(10) + " derajat"); 15. System.out.println("sin(90): " + Math.sin(Math.toRadians(90))); 16. } 17. }
6. Analisis Hasil Percobaan
Tulislahlah masing-masing output yang dihasilkan dari semua percobaan di atas. Catat semua error yang muncul selama percobaan dan coba analisa mengapa error tersebut muncul dan bagaimana mengatasinya. Bandingkan output yang anda peroleh dengan praktikan lainnya.
________________________________________________________
Modul Praktikum Pemrograman Berorientasi Objek D3 MI 50 7. Tugas
Gunakan string-string dibawah ini untuk menjawab pertanyaan berikut:
String s1 = “Welcome to Java”; String s2 = “Welcome to Java”; 1. Apa nilai yang disimpan di variabel ch setelah pernyataan
char ch = sl.charAt(6); 2.Apa yang direturn pada pernyataan
String s = sl.subString(4,8);
3. Apa hasil dari char ch = charAt(s1.length( )); 4. Apa hasil dari String s = s1+s2;
5. Apa hasil dari String s = s1-s2; 6. Apa output dari program berikut?
if (s1==s2)
System. out.println(“Mereka sama”); else
System. out.println(“Mereka berbeda”); Jelaskan alasannya!