11 Hal Tentang String Pada Java Yang Perlu Diketahui

Banyak hal yang bisa dipelajari oleh pemula dalam Java mengenai String, sehingga dengan memiliki pengetahuan mendalam mengenai method String yang berbeda akan membuat anda bisa menggunakannya dengan tepat. String dalam Java adalah class yang sangat spesial dan sering sekali digunakan.

Dikarenakan banyak digunakan pada berbagai project pada Java, maka di sini akan di kupas mengenai 11 hal yang wajib diketahui mengenai String.

 11 Hal Tentang String Pada Java Yang Perlu Diketahui
Java String

Penjelasan Tentang String

Apa sajakah yang penting diketahui mengenai String?
Di bawah ini adalah penjelasan mengenai String :
  1. Cara membuat objek String pada java ada 2 cara.
    Untuk membuat objek String dapat dilakukan dengan dua cara, yaitu:
    • String a = "halo"; //membuat objek String dengan String literal
    • String a = new String("halo"); //membuat objek String dengan operator new

  2. String bersifat Immutable dan final
    String bersifat immutable, artinya sekali sudah dibuat, maka kita tidak dapat memodifikasi isi dari String tersebut.

    Jika kita memodifikasi String dengan method toLowerCase(), toUpperCase() ataupun method lainnya, maka akan selalu menghasilkan String yang baru.

    Dikarenakan String adalah final, maka tidak ada jalan siapapun untuk melakukan extend String atau meng-override fungsional apapun dari String.

  3. String diatur dalam String pool
    Setiap kali kita membuat objek String dengan menggunakan String literal, maka Java Virtual Machine (JVM) pertama kali akan memeriksa konten dari objek yang dibuat.

    Jika terdapat objek yang sama dalam String pool yang memiliki konten yang sama, maka referensi akan dikembalikan pada objek tersebut, tanpa membuat objek baru.

    JVM tidak melakukan pemeriksaan String pool jika kita membuat objek dengan menggunakan operator new.

    Untuk lebih jelasnya :

    public class StringTest {
     
     public static void main (String args []){
          
         //Objek string pertama
         String nama = "Halo"; 
      
         //variabel mengacu pada objek yang sama 
         String nama_1 = "Halo";
     
         //objek String berbeda
         String nama_2 = new String("Halo"); 
         
         boolean a = nama==nama_1;
         System.out.println("Apakah nama dan nama-1 mengacu pada "
                 + "objek String yang sama? " + a);
     
         boolean b = nama==nama_2;
         System.out.println("Apakah nama dan nama-2 mengacu pada "
                     + "objek String yang sama? " + b);
        
      }
     
     }
    

    Output:
    Apakah nama dan nama-1 mengacu pada objek String yang sama? true
    Apakah nama dan nama-2 mengacu pada objek String yang sama? false

  4.  String adalah objek
    String merupakan sebuah objek, bukanlah seperti tipe data primitif yang lain seperti int, double dan sebagainya.

  5. Gunakan method equals () untuk membandingkan String
    Untuk membandingkan String, anda dapat menggunakan method equals().

    Class String meng-override method equals() dan memberikan konten equality dari String, yang berdasarkan pada character dan urutan.

    Jadi bila anda ingin membandingkan dua objek String, dan akan memeriksa apakah String tersebut sama atau tidak, selalu gunakan method equals() daripada menggunakan operator equality (= =).

    Contoh :

    public class StringTest {
     
     public static void main (String args []){
      
         String nama = "Halo"; 
         String nama_1 = "halo"; 
         String nama_2 = new String("Halo"); 
         
         boolean a = nama.equals(nama_1);
         System.out.println("Apakah nama dan nama-1 sama? " + a);
     
         boolean b = nama.equals(nama_2);
         System.out.println("Apakah nama dan nama-2 sama? " + b);
        
      }
     
     }
    

    Output:
    Apakah nama dan nama-1 sama? false
    Apakah nama dan nama-2 sama? true

  6. Gunakan method indexOf(), lastIndexOf(), atau matches(String regex) untuk mencari ke dalam String
    Class String menyediakan method yang lengkap untuk melihat apakah character atau sub-string atau suatu pola terdapat pada objek string aktual.

    Anda dapat menggunakan method indexOf() yang akan mengembalikan nilai posisi dari character dalam String jika character tersebut terdapat dalam String atau memberikan -1 jika character tersebut tidak terdapat dalam String.

    Method lastIndexOf() adalah method yang serupa, namun method ini bekerja dari bagian paling akhir String.

    Sementara itu method matches(String regex) bekerja lebih kuat lagi. Dengan menggunakan method ini, anda dapat mencari pola ekspesi reguler di dalam String.

    Contoh :

    public class StringTest {
     
     public static void main (String args []){
      
         String str = "Mempelajari String itu penting";
    
         if(str.indexOf("itu") != -1){
              System.out.println("String mengandung itu pada index : " 
                                  + str.indexOf("itu"));
         }
    
         if(str.matches("M.*")){
              System.out.println("String dimulai dengan M");
         }
    
         str ="Belajar Java itu mudah";
    
         if(str.lastIndexOf("a") != -1){
               System.out.println("String mengandung a " 
               + " terakhir pada index: " + str.lastIndexOf("a")); 
     
    System.out.println();
        
        //Membuat array stringKu
        String[] string = {"halo", "128", "h4lo", "Halo"};
        
        //Memeriksa apakah elemen array StringKu mengandung alfabet
        for(String stringKu : string) {
            System.out.println(stringKu +
              " mengandung alfabet : " + stringKu.matches(".*[A-Za-z].*"));
    
         }
        
         System.out.println();
         
        //Memeriksa apakah String mengandung digit angka atau tidak
        String[] angka = {"123" , "+123", "234a", "halo"};
        for(String angkaKu : angka) {
           System.out.println(angkaKu + " memiliki digit angka"
                   + " 0 - 9  : " + angkaKu.matches(".*[1-9].*"));
        }
    
      }
     
     }
    
    }
    

    Output:
    String mengandung itu pada index : 19
    String dimulai dengan M
    String mengandung a terakhir pada index: 20

    halo mengandung alfabet : true
    128 mengandung alfabet : false
    h4lo mengandung alfabet : true
    Halo mengandung alfabet : true

    123 memiliki digit angka 0 - 9  : true
    +123 memiliki digit angka 0 - 9  : true
    234a memiliki digit angka 0 - 9  : true
    halo memiliki digit angka 0 - 9  : false

  7. Gunakan method substring() untuk mendapatkan bagian String
    Method substring() disediakan oleh Java untuk mendapatkan bagian dari String. Pada dasarnya anda menetapkan awal dan akhir index, kemudian method substring() akan mengembalikan character dari range tersebut.

    Index String dimulai dari 0 dan terus berlanjut sampai String.length() -1.

    Perlu diingat juga, method ini mengembalikan white spaces seperti tab dan spasi.

    Satu hal yang penting diingat dari method ini adalah substring juga dibackup oleh character array, yang digunakan oleh String asli.

    Ini dapat berbahaya, jika objek String asli sangat besar dan substring sangat kecil, karena walaupun hanya berupa sebuah fraksi yang kecil, namun dapat memegang referensi dari array dengan lengkap.

    Akibatnya objek String tersebut tidak masuk kedalam garbage collected, walaupun objek tersebut tidak memiliki referensi.

    Contoh:

    public class StringTest {
     
     public static void main (String args []){
         
         String str = "Belajar Java itu mudah";
            
        //mengembalikan bagian String dari index 0 - 12
        String subString = str.substring(0,12);
            
        System.out.println("Substring: " + subString);
        
     }
    
    }
    

  8. Output:
    Substring: Belajar Java

  9. Gunakan operator + untuk menggabungkan String
    Operator + dapat digunakan untuk menggabungkan String. Java tidak mendukung operator overloading, namun karena String adalah spesial, maka operator + dapat digunakan untuk menggabungkan dua String.

    Operator + ini juga dapat digunakan untuk mengkonversi tipe data int, char, long atau double menjadi String, dengan cara simpel yaitu dengan menggabungkannya dengan String kosong "".

    Secara internal, + diimplementasikan menggunakan StringBuffer dan StringBuilder, yang digunakan untuk memanipulasi String.

  10. Gunakan method trim() untuk menghilangkan spasi
    String dalam Java menyediakan method trim() untuk menghilangkan white space di bagian awal dan akhir dari String.

    String juga menyediakan method replace() dan replaceAll() untuk me-replace character dari String. Method replaceAll bahkan mendukung ekspresi reguler.

    Contoh:

    public class StringTest {
     
     public static void main (String args []){
         
         String str = "           Belajar Java itu mudah banget        ";
            
        //menggunakan method trim() untuk menghilangkan white space
        //pada awal dan akhir String
        String string1 = str.trim();
        System.out.println(string1);
        
        //replace Java dengan java
        String string2 = string1.replace("Java", "java");
        System.out.println(string2);
    
        //replace karakter B dengan b
        String string3 = string2.replace('B', 'b');
        System.out.println(string3);
        
        //replace all bang dengan BANG
        String string4 = string3.replaceAll("bang", "BANG");
        System.out.println(string4);
     }
    
    }
    

    Output:
    Belajar Java itu mudah banget
    Belajar java itu mudah banget
    belajar java itu mudah banget
    belajar java itu mudah BANGet
    
    

  11. Gunakan method split() untuk meng-split String menggunakan ekspresi reguler
    Untuk melakukan split pada String anda dapat menggunakan method split(regex) yang dapat mengambil String dalam bentuk ekspresi reguler apapun, dan meng-split String berdasarkan hal tersebut.

    Split String ini terutama sangat berguna bila anda berhadapan dengan comma separated file atau CSV dan anda menginginkan bagian individual dalam sebuah array String.

    Contoh:

    public class StringTest {
     
     public static void main (String args []){
         
         String data = "Nama:,Umur:,Alamat:,Tanggal Lahir:"
                 + ",Pendidikan Terakhir:";
        
        //Split berdasarkan tanda koma
        String [] biodata = data.split(",");
        
        //Mengetahui banyaknya pembagian
        System.out.println("Data Dibagi dalam : " 
                           + biodata.length + " bagian");
        
        //Menampilkan hasil split
         for(String Biodata: biodata){
             System.out.println(Biodata);
             }
     }
    
    }
    

    Output:
    Data Dibagi dalam : 5 bagian
    Nama:
    Umur:
    Alamat:
    Tanggal Lahir:
    Pendidikan Terakhir:

  12. Jangan menyimpan data yang sensitif pada String
    String ternyata dapat menimbulkan ancaman bila digunakan untuk menyimpan data sensitif seperti password, SSN atau informasi sensitif lainnya.

    Karena String bersifat immutable pada Java, maka tidak ada jalan untuk menghapus konten dari String, dan karena String berada dalam String pool (dalam hal ini adalah String literal), maka String tersebut akan berada lebih lama dalam Java heap.

    Hal ini dapat mengakibatkan resiko oleh siapapun yang dapat mengakses memori Java, seperti membaca dari memory dump.

    Sebaliknya, char[] harus digunakan untuk menyimpan password atau data sensitif lainnya.
Demikianlah  11 Hal Tentang String Pada Java Yang Perlu Diketahui, jika anda ingin menambahkan silakan mengisi di kolom komentar, untuk mengupdate postingan ini untuk kepentingan bersama.
11 Hal Tentang String Pada Java Yang Perlu Diketahui  11 Hal Tentang String Pada Java Yang Perlu Diketahui Reviewed by JavaManz on 20.19.00 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.