Pemrograman Berorientasi Objek Dian Wahyuningsih, S.Kom., MMSI
String Perbedaan Antara String dan tipe data primitive Char. Pengujian method compareTo() dan equals(). Mengapa operator == tidak dapat digunakan untuk String. Method String yang sering digunakan: length(), substring(), indexOf() dan charAt().
String bukanlah bagian dari tipe data primitive, namun merupakan sebuah tipe data objek /referensi. String tidak dapat diubah, namun akan membentuk sebuah objek string baru.
Pada saat kita membuat sebuah referensi objek atau string, namun objek tersebut tidak tersedia maka akan menghasilkan pointer null. Contoh: terdapat dua buah String (name, name2) maka: Maka objek name2 akan mereferensi pada objek yang sama dengan objek name.
Pada contoh sebelumnya objek name2 mereferensi objek yang sama dengan name yakni Mya. Namun jika user menginputkan isian yang sama untuk name dan name2, maka compiler akan membuat dua buah objek String yang berbeda. Sulit untuk memprediksi kapan Java akan membuat String baru atau menggunakan objek yang ada untuk String yang identic dengan String baru.
Penggabungan String Untuk menggabungkan dua buah String kita dapat menggunakan operator (+) dan (+=). Operator (+) untuk menggabungkan dua buah String. Operator (+=) untuk menggabungkan dua buah String dan menyimpannya dalam objek dirinya sendiri. Contoh:
Method compareTo() Digunakan untuk membandingkan String. Penggunaan: s1.compareTo(s2). Biasanya digunakan ketika mencari urutan leksikal (lexicographical = cabang ilmu Bahasa yang mempelajari tentang teknik penyusunan kamus) dari dua buah String. Akan menghasilkan nilai integer: Jika s1 < s2, menghasilkan kembalian <0. Jika s1 sama dengan s2, menghasilkan kembalian 0. Jika s1 > s2, menghasilkan kembalian >0.
Method equals() Digunakan untuk membandingkan String. Penggunaan: s1.equals(s2). Digunakan untuk membandingkan dua buah String, apakah sama atau tidak. Menghasilkan nilai Boolean. Jika s1 sama dengan s2, maka bernilai true. Jika s1 tidak sama dengan s2, maka bernilai false.
Contoh method compareTo() dan equals() Kedua method bersifat case sensitive. Apakah keluaran dari perintah dibawah ini?
Membandingkan String dengan == Simbol == dapat digunakan untuk membandingkan variable primitive. Namun untuk String, membandingkan dengan simbol == tidak selalu dapat digunakan dan harus dihindari, kecuali untuk membandingkan lokasi memori dari dua objek String. Penggunaan simbol == akan menghasilkan nilai true, jika dua buah objek String menunjuk/mereferensi pada objek yang sama. Contoh:
Membandingkan String dengan == Apakah keluaran dari program diatas? S1 dan s2 menunjuk pada objek yang sama. Java memberitahukan bahwa keduanya sama dan membuat reference yang sama. Sedangkan s5 tidak menunjuk pada objek yang sama dengan s1. Karena String s5 dibuat dari pengkombinasian dua buah String yaitu s3 dan s4 sehingga akan menghasilkan objek baru.
Method length() Penggunaan : s1.length() Menghasilkan nilai integer yang menunjukkan panjang atau jumlah karakter. Setiap karakter String mempunyai indeks. Karakter pertama dimulai dari indeks 0, dilanjutkan dengan 1 dan seterusnya sampai akhir karakter.
Method substring() Penggunaan : s2.substring(int beginIndex) menghasilkan string s2 dari awal indeks sampai akhir string. S2.substring(int beginIndex, int endIndex) menghasilkan string s2 dari awal indeks sampai akhir indeks tetapi tidak termasuk karakter terakhir. Contoh: apakah hasil keluaran untuk program dibawah ini:
Method indexOf() dan charAt() Method : s3.indexOf(char c); menghasilkan nilai indeks pertama dari c di string s3. Parameter tidak harus berupa karakter, tapi juga dapat berupa string. Contoh: s3.indexOf(“the”); Method : s4.charAt(int index); menghasilkan karakter dari lokasi indeks parameternya. Indeks berupa integer dari 0 sampai s4.length()-1.
Gunakan struktur kontrol dan Method String untuk pengecekan “palindrome” Palindrome adalah sebuah kata yang dapat dieja dari depan atau belakang. Tuliskan kode Java untuk menginputkan kata dan mengembalikan nilai “true” jika palindrome dan “false” jika bukan. Aturannya adalah: Hitung terlebih dahulu panjang katanya. Bandingkan huruf pertama dengan huruf terakhir apakah sama? Bandingkan huruf sampai tengah kata tercapai.
Pernyataan break Break tidak berlabel: Pernyataan break tidak berlabel (unlabeled) digunakan untuk menghentikan jalannya pernyataan switch. Selain itu pernyataan break unlabeled juga bisa digunakan untuk menghentikan pernyataan-pernyataan for, while atau do-while loop.
Break berlabel : Bentuk label dari pernyataan break akan menghentikan pernyataan di luarnya, dimana sebelumnya harus diberikan label yang sudah di spesifikasikan pada program pada pernyataan break. Program berikut ini akan mencari nilai dalam array dua dimensi. Terdapat dua pengulangan bersarang (nested loop). Ketika sebuah nilai ditemukan, break akan menghentikan pernyataan yang diberi label searchLabel yang terletak di luar pernyataan for loop.
Pernyataan continue Bentuk pernyataan continue tidak berlabel (unlabeled) akan melewati bagian pernyataan setelah pernyataan ini dituliskan dan memeriksa eksepresi logika (boolean) yang mengkontrol pengulangan. Jika ekspresi logika (boolean) masih bernilai true, maka pengulangan tetap dilanjutkan. Pada dasarnya pernyataan ini akan melanjutkan bagian pengulangan pada pernyataan loop.
Bentuk pernyataan continue berlabel (labeled) akan melanjutkan pengulangan yang sedang terjadi dan dilanjuti ke pengulangan berikutnya dari pernyataan pengulangan yang diberi label (tanda).
Tugas!! Buatlah sebuah aplikasi Java untuk membalik kata menjadi kata malangan atau kata walik’an dengan aturan sebagai berikut: Kata malangan adalah kata yang dibalik, contoh: kamu umak, bakso oskab, dll Jika bertemu gabungan karakter “ng” atau “ny” maka karakter tersebut tidak dibalik, contoh: malang ngalam, banyak kanyab. Tugas berupa project dan laporan, beri nama Malangan Dalam laporan terdiri dari algoritma program berupa flowchart dan berikan pembahasan terhadap algoritma yang digunakan. Dikirim ke email dian.wahyuningsih02@gmail.com paling lambat sabtu 21 oktober 2017.