Menguasai String Java: Pembuatan, Metode, dan Best Practices
String Java
Dalam tutorial ini, kita akan mempelajari tentang string Java, cara membuatnya, dan berbagai metode kelas String dengan bantuan contoh.
Di Java, string adalah urutan karakter. Misalnya, "hello" adalah string yang berisi urutan karakter 'h', 'e', 'l', 'l', dan 'o'.
Kita menggunakan tanda petik ganda untuk mewakili string di Java. Misalnya,
// buat string String type = "Java programming";
Di sini, kita telah membuat variabel string bernama type. Variabel diinisialisasi dengan string Java Programming.
Contoh: Buat String di Java
class Main { public static void main(String[] args) { // buat string String first = "Java"; String second = "Python"; String third = "JavaScript"; // cetak string System.out.println(first); // cetak Java System.out.println(second); // cetak Python System.out.println(third); // cetak JavaScript } }
Dalam contoh di atas, kita telah membuat tiga string bernama first, second, dan third. Di sini, kita membuat string langsung seperti tipe primitif.
Namun, ada cara lain untuk membuat string Java (menggunakan kata kunci new). Kita akan mempelajari itu nanti dalam tutorial ini.
Catatan: String di Java bukan tipe primitif (seperti int, char, dll.). Sebaliknya, semua string adalah objek dari kelas bernama String.
Dan, semua variabel string adalah instance dari kelas String.
Operasi String Java
Kelas String Java menyediakan berbagai metode untuk melakukan operasi berbeda pada string. Kita akan melihat beberapa operasi string yang sering digunakan.
1. Dapatkan Panjang String
Untuk menemukan panjang string, kita menggunakan metode length() dari String. Misalnya,
class Main { public static void main(String[] args) { // buat string String greet = "Hello! World"; System.out.println("String: " + greet); // dapatkan panjang greet int length = greet.length(); System.out.println("Panjang: " + length); } }
Output
String: Hello! World Panjang: 12
Dalam contoh di atas, metode length() menghitung total karakter dalam string dan mengembalikannya. Untuk mempelajari lebih lanjut, kunjungi Java String length().
2. Gabungkan Dua String Java
Kita dapat menggabungkan dua string di Java menggunakan metode concat(). Misalnya,
class Main { public static void main(String[] args) { // buat string pertama String first = "Java "; System.out.println("String Pertama: " + first); // buat string kedua String second = "Programming"; System.out.println("String Kedua: " + second); // gabungkan dua string String joinedString = first.concat(second); System.out.println("String Gabungan: " + joinedString); } }
Output
String Pertama: Java String Kedua: Programming String Gabungan: Java Programming
Dalam contoh di atas, kita telah membuat dua string bernama first dan second. Perhatikan pernyataan,
String joinedString = first.concat(second);
Di sini, metode concat() menggabungkan string second ke string first dan menetapkannya ke variabel joinedString.
Kita juga dapat menggabungkan dua string menggunakan operator + di Java. Untuk mempelajari lebih lanjut, kunjungi Java String concat().
3. Bandingkan Dua String
Di Java, kita dapat membuat perbandingan antara dua string menggunakan metode equals(). Misalnya,
class Main { public static void main(String[] args) { // buat 3 string String first = "java programming"; String second = "java programming"; String third = "python programming"; // bandingkan string pertama dan kedua boolean result1 = first.equals(second); System.out.println("String pertama dan kedua sama: " + result1); // bandingkan string pertama dan ketiga boolean result2 = first.equals(third); System.out.println("String pertama dan ketiga sama: " + result2); } }
Output
String pertama dan kedua sama: true String pertama dan ketiga sama: false
Dalam contoh di atas, kita telah membuat 3 string bernama first, second, dan third. Di sini, kita menggunakan metode equals() untuk memeriksa apakah satu string sama dengan yang lain.
Metode equals() memeriksa isi string saat membandingkannya. Untuk mempelajari lebih lanjut, kunjungi Java String equals().
Catatan: Kita juga dapat membandingkan dua string menggunakan operator == di Java. Namun, pendekatan ini berbeda dari metode equals(). Untuk mempelajari lebih lanjut, kunjungi Java String == vs equals().
Karakter Escape di String Java
Karakter escape digunakan untuk meloloskan beberapa karakter yang ada di dalam string.
Misalkan kita perlu menyertakan tanda petik ganda di dalam string.
// sertakan tanda petik ganda String example = "This is the "String" class";
Karena string diwakili oleh tanda petik ganda, kompiler akan memperlakukan "This is the " sebagai string. Maka, kode di atas akan menyebabkan kesalahan.
Untuk mengatasi masalah ini, kita menggunakan karakter escape \ di Java. Misalnya,
// gunakan karakter escape String example = "This is the \"String\" class.";
Sekarang karakter escape memberitahu kompiler untuk meloloskan tanda petik ganda dan membaca seluruh teks.
String Java adalah Immutable
Di Java, string adalah immutable. Ini berarti, setelah kita membuat string, kita tidak dapat mengubah string tersebut.
Untuk memahaminya lebih dalam, pertimbangkan contoh ini:
// buat string String example = "Hello! ";
Di sini, kita telah membuat variabel string bernama example. Variabel menyimpan string "Hello! ".
Sekarang misalkan kita ingin mengubah string tersebut.
// tambahkan string lain "World" // ke string sebelumnya example = example.concat(" World");
Di sini, kita menggunakan metode concat() untuk menambahkan string lain World ke string sebelumnya.
Sepertinya kita dapat mengubah nilai string sebelumnya. Namun, ini bukan true.
Mari kita lihat apa yang telah terjadi,
- JVM mengambil string pertama "Hello! "
- membuat string baru dengan menambahkan "World" ke string pertama
- menetapkan string baru "Hello! World" ke variabel example
- string pertama "Hello! " tetap tidak berubah
Membuat String menggunakan kata kunci new
Sampai saat ini kita telah membuat string seperti tipe primitif di Java.
Karena string di Java adalah objek, kita dapat membuat string menggunakan kata kunci new juga. Misalnya,
// buat string menggunakan kata kunci new String name = new String("Java String");
Dalam contoh di atas, kita telah membuat string name menggunakan kata kunci new.
Di sini, saat kita membuat objek string, konstruktor String() dipanggil. Untuk mempelajari lebih lanjut tentang konstruktor, kunjungi Java Constructor.
Catatan: Kelas String menyediakan konstruktor lain untuk membuat string. Untuk mempelajari lebih lanjut, kunjungi Java String (dokumentasi Java resmi).
Contoh: Buat String Java menggunakan kata kunci new
class Main { public static void main(String[] args) { // buat string menggunakan new String name = new String("Java String"); System.out.println(name); // cetak Java String } }
Buat String menggunakan literal vs kata kunci new
Sekarang setelah kita tahu cara membuat string menggunakan string literal dan kata kunci new, mari kita lihat perbedaan utama di antara keduanya.
Di Java, JVM memelihara string pool untuk menyimpan semua string di dalam memori. String pool membantu dalam penggunaan ulang string.
1. Saat membuat string menggunakan string literal,
String example = "Java";
Di sini, kita langsung memberikan nilai string (Java). Maka, kompiler pertama kali memeriksa string pool untuk melihat apakah string sudah ada.
- Jika string sudah ada, string baru tidak dibuat. Sebaliknya, referensi baru, example menunjuk ke string yang sudah ada (
Java). - Jika string tidak ada, string baru (
Java) dibuat.
2. Saat membuat string menggunakan kata kunci new,
String example = new String("Java");
Di sini, nilai string tidak langsung diberikan. Maka, string "Java" baru dibuat meskipun "Java" sudah ada di dalam memori pool.
Metode Kelas String Java
Selain yang disebutkan di atas, ada berbagai metode string yang ada di Java. Berikut adalah beberapa di antaranya:
| Metode | Deskripsi |
|---|
| contains() | memeriksa apakah string berisi substring |
| substring() | mengembalikan substring dari string |
| join() | menggabungkan string yang diberikan dengan delimiter |
| replace() | mengganti karakter lama yang ditentukan dengan karakter baru yang ditentukan |
| replaceAll() | mengganti semua substring yang cocok dengan pola regex |
| replaceFirst() | mengganti substring pertama yang cocok |
| charAt() | mengembalikan karakter yang ada di lokasi yang ditentukan |
| getBytes() | mengonversi string menjadi array byte |
| indexOf() | mengembalikan posisi karakter tertentu dalam string |
| compareTo() | membandingkan dua string dalam urutan kamus |
| compareToIgnoreCase() | membandingkan dua string mengabaikan perbedaan huruf besar-kecil |
| trim() | menghapus spasi putih di awal dan akhir |
| format() | mengembalikan string yang diformat |
| split() | memecah string menjadi array string |
| toLowerCase() | mengonversi string menjadi huruf kecil |
| toUpperCase() | mengonversi string menjadi huruf besar |
| valueOf() | mengembalikan representasi string dari argumen yang ditentukan |
| toCharArray() | mengonversi string menjadi array char |
| matches() | memeriksa apakah string cocok dengan regex yang diberikan |
| startsWith() | memeriksa apakah string dimulai dengan string yang diberikan |
| endsWith() | memeriksa apakah string berakhir dengan string yang diberikan |
| isEmpty() | memeriksa apakah string kosong atau tidak |
| intern() | mengembalikan representasi kanonis string |
| contentEquals() | memeriksa apakah string sama dengan charSequence |
| hashCode() | mengembalikan hash code untuk string |
| subSequence() | mengembalikan subsequence dari string |