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: String ( )
________________________________________________________ Modul Praktikum Pemrograman Berorientasi Objek D3 MI 39
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 40
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 41
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 dioverload lainnya. public char charAt(int index)
Mengirim character di lokasi tertentu di StringBuffer yang dispesifikasikan parameter index. ________________________________________________________ Modul Praktikum Pemrograman Berorientasi Objek D3 MI 42
public void getChars(int char[] dst, int dstBegin)
srcBegin,
int
srcEnd,
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 dioverload. 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 String str)
replace(int
start,
int
end,
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 43
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 berturutturut.
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 44
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 45
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. 2. 3. 4. 5. 6. 7. 8. 9.
class StringDemo { public static void main(String args[]) { String nama = "Amin"; System.out.println("nama: " + nama); System.out.println("Karakter ketiga dari nama: " + nama.charAt(2)); /* karakter yang pertama nampak secara berurutan mempunyai nilai unicode lebih kecil */ System.out.println("Amin dibanding dengan Sulaiman: " + nama.compareTo("Sulaiman")); System.out.println("Sulaiman dibanding dengan Amin: " + "Sulaiman".compareTo("Amin")); /* 'J' mempunyai nilai unicode yang lebih kecil
________________________________________________________ Modul Praktikum Pemrograman Berorientasi Objek D3 MI 46
10. 11.
12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
29.
disbanding 'j' */ System.out.println("Amin dibanding dengan amin: " + nama.compareTo("Amin")); System.out.println("Amin dibanding dengan Amin (ignorecase): " + nama.compareToIgnoreCase("Amin")); System.out.println("Apakah Amin sama dengan amin? " + nama.equals("Amin")); System.out.println("Apakah Amin sama dengan Amin? " + nama.equals("Amin")); System.out.println("Apakah Amin sama dengan amin (ignorecase)? " + nama.equalsIgnoreCase("Amin")); char charArr[] = "Hi XX".toCharArray(); /* Membutuhkan tambahan 1 untuk indeks endSrc dari getChars */ "Amin".getChars(0, 2, charArr, 3); System.out.print("getChars method: "); System.out.println(charArr); System.out.println("Panjang nama: " + nama.length()); System.out.println("Ganti ‘a’ dengan ‘e' nama: " + nama.replace('a', 'e')); /* Membutuhkan tambahan 1 untuk parameter endIndex dari substring*/ System.out.println("Substring dari nama: " + nama.substring(0, 2)); System.out.println("Trim \" a b c d e f \": \"" + " a b c d e f ".trim() + "\""); System.out.println("String representasi dari ekspresi 10>10: " + String.valueOf(10>10)); /* method toString secara implisit dipanggil method println */ System.out.println("String representasi dari boolean expression 10<10: " + (10<10)); /* Catatan, tidak ada perubahan pada nama objek String meskipun setelah penggunaan semua method. */ System.out.println("nama: " + nama);
________________________________________________________ Modul Praktikum Pemrograman Berorientasi Objek D3 MI 47
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 48
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 49
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!
________________________________________________________ Modul Praktikum Pemrograman Berorientasi Objek D3 MI 50