Gabung Ke Forum Saya Di 4KA01

FILE

 Penanganan String
Dalam pemrograman Java, String merupakan aspek penting dan kita akan selalu menemui bentuk string untuk membuat program.String merupakan class yang terdapat dalam library Java.


String Literal
Sebelumnya kita sudah sering menggunakan System.out.println yang menampilkan String dilayar, dimana String yang ditampilkan diawali dengan tanda “ dan diakhiri dengan tanda “. Apabila kita menampilkan variable  bukan String dengan System.out.println maka isi variable diubah menjadi String terlebih dahulu secara implicit dengan method toString() yang dimiliki oleh setiap class Java.


Untuk mendeklarasikan variable dengan nilai String maka kita perlu menggunakan tanda “ (petik ganda) dan kita dapat menggunakan karakter khusus seperti \n maupun Unicode dalam String.


Membuat Objek String
Java mendefinisikan class String dalam package java.lang.String sehingga kita tidak perlu melakukan import secara eksplisit apabila program kita menggunakan package String ini.
Contoh :
String varString = ”abcd”;
Sebenarnya kode tersebut adalah bentuk singkat dari:
Char[] datanya={’a’,’b’,’c’,’d’}
String varString=new String(datanya);
Jadi dapat disimpulkan bahwa String terdiri dari data array bertipe char. Kita juga dapat membuat objek String menggunakan keyword new yang biasa digunakan untuk membuat objek dari class.
Contoh:
String dataString= new String(”abcde”);
Untuk lebih lengkapnya mengenai pembuatan objek String, kita dapat mencarinya di dokumentasi Java pada package java.lang.Objek String bersifat immutable yang berarti objek String tidak dapat diubah.Apabila kita mendeklarasikan variabel String seperti berikut:
String varString=”Ini variabel String”;
Maka apabila kita mengubah nilainya seperti berikut:
varString=”Sebenarnya ini juga String”;
maka java akan membuat referensi objek yang menunjuk lokasi baru pada memori dan bukannya mengganti isi memori sebelumnya dengan nilai yang baru.


Menggabungkan String
Seringkali dalam pemrograman kita perlu menggabungkan String untuk mendapatkan String baru. Dengan menggunakan operator (+) dapat digunakan untuk menggabungkan beberapa String.
Contoh penggunaan:
Stringku=”Ini adalah contoh”+”penggabungan String”;
Kita juga dapat menggunakan operator += untuk menggabungkan variabel String, misalnya:
String kata=”Ini perkataan”;
Kata +=”saya sendiri”;


Contoh program1:
//nama file : StringGabung.java
public class StringGabung{
public static void main (String[]args){
String StringPertama="Penonton ";
String StringKedua=" menghadiri "; 
String StringKetiga="Pertunjukan";
String StringGabung;
StringGabung=StringPertama+StringKedua+StringKetiga;
System.out.println(StringGabung);
int anggota=80;
StringGabung=anggota+" orang "+StringKedua+StringKetiga;
System.out.println(StringGabung);
StringGabung="Empat puluh empat adalah "+4+4;
System.out.println(StringGabung);
StringGabung=10+10+" adalah duapuluh";
System.out.println(StringGabung);
}
}
Output program1:
Penonton  menghadiri Pertunjukan
80 orang  menghadiri Pertunjukan
Empat puluh empat adalah 44
20 adalah duapuluh

Menbandingkan String
Untuk membandingkan objek String, kita dapat menggunakan operator (==) atau method equals().
Penggunaan dan perbedaan dari kedua cara tersebut dapat dilihat pada contoh pemrograman TesKesamaanString.Selain equals()juga terdapat method equalsIgnoreCase() yang mengabaikan antara huruf besar dengan huruf kecil.


Penggunaan tanda == untuk mencek kesamaan antara String, tidak dapat digunakan karena tanda == mencek lokasi dari String di memori apakah sama dengan String yang dibandingkan. Apabila lokasinya sama maka nilai yang didapat akan selalu sama. Hanya saja walau String seringkali memiliki data sama tetapi dengan lokasi memori berbeda. 


Contoh program2:
public class TesKesamaanString
{
public static void main(String[]args){
String nama="Dini Triasanti";
String namanya=nama;
System.out.println("nama : "+nama);
System.out.println("namanya : "+namanya);
/*hal ini mengakibatkan namanya menunjuk pada lokasi memori yang sama dengan nama*/
System.out.println("nama.equals(namanya)?"+(nama.equals(namanya)?"sama":"tidak sama"));
System.out.println("nama==namanya? "+(nama==namanya?"sama":"tidak sama"));
System.out.println("================================");
String namaku="Dini Triasanti";
System.out.println("namaku : "+namaku);
System.out.println("namaku.equals(nama)?"+(namaku.equals(nama)?"sama":"tidak sama"));
System.out.println("namaku==nama? "+(namaku==nama?"sama":"tidak sama")); 
System.out.println("================================");
nama+=" ST";
String namamu="Dini Triasanti ST";
System.out.println("nama : "+nama);
System.out.println("namamu : "+nama);
System.out.println("namamu.equals(nama)?"+(namamu.equals(nama)?"sama":"tidak sama"));
System.out.println("namamu==nama? "+(namamu==nama?"sama":"tidak sama"));
}
}
Output program2:
nama : Dini Triasanti
namanya : Dini Triasanti
nama.equals(namanya)?sama
nama==namanya? sama
================================
namaku : Dini Triasanti
namaku.equals(nama)?sama
namaku==nama? sama
================================
nama : Dini Triasanti ST
namamu : Dini Triasanti ST
namamu.equals(nama)?sama
namamu==nama? tidak sama


Mengurutkan String
Kita dapat melakukan pengurutan String dengan method compareTo(). Method ini membandingkan karakter-karakter pada String secara berurutan dari awalString. 
Contoh program3:
Misalnya String pertama bernilai ”a” dan String kedua bernilai ”b” maka apabila Stringpertama.compareTo(Stringkedua) akan menghasilkan nilai negatif(<0) dan apabila dilakukan sebaliknya akan dihasilkan apabila String pertama dengan kedua sama.
public class UrutString
{
public static void main(String[]args){
String[] nama1={"Dini","Dwi","Eko","Septian","Santi",
"Hannan","Ana","Auditya","Indra","Mita"};
String temp;
System.out.println("Nama-nama sebelum diurutkan");
for(int i=0;i
{
System.out.println(i+1+" "+nama1[i]+" ");
}
//Mengurutkan nama
System.out.println("----------------------");
System.out.println("Nama-nama setelah diurutkan");
for(int i=0;i<(nama1.length-1);i++){
    for(int j=0;j<(nama1.length-1);j++)
    {
      if (nama1[j].compareTo(nama1[j+1])>0)
      {
      temp=nama1[j+1];
      nama1[j+1]=nama1[j];
      nama1[j]=temp;
      }
    }
    }
    for(int i=0;i
    {
    System.out.println(i+1+" "+nama1[i]);
    }
  }
}
Output program3:
Nama-nama sebelum diurutkan
1 Dini
2 Dwi
3 Eko
4 Septian
5 Santi
6 Hannan
7 Ana
8 Auditya
9 Indra
10 Mita
----------------------
Nama-nama setelah diurutkan
1 Ana
2 Auditya
3 Dini
4 Dwi
5 Eko
6 Hannan
7 Indra
8 Mita
9 Santi
10 Septian


Mencek Awal dan Akhir String
Untuk mencek awal dan akhir String, kita dapat menggunakan method startsWith() dan endsWith() yang mengembalikan true apabila benar dan false apabila salah.
Contoh program4:
//nama file: CekAwalAkhir.java
public class CekAwalAkhir{
  public static void main (String []args){
  String awal="Awal dari String";
  System.out.println("String awal berisi : "+awal);
  System.out.println("CEK AWAL STRING");
  
  System.out.println("Apakah awal diawali dengan \"Awal\"?"+awal.startsWith("Awal"));
  System.out.println("Apakah awal diawali dengan \"awal\"?"+awal.startsWith("awal"));
  System.out.println("Apakah awal diawali dengan \"saya\"?"+awal.startsWith("saya"));


  System.out.println("CEK AKHIR STRING");

  System.out.println("Apakah akhir diawali dengan \"String\"?"+awal.endsWith("String"));
  System.out.println("Apakah awal diawali dengan \"string\"?"+awal.startsWith("string"));
  }
}
Output program4:
String awal berisi : Awal dari String 
CEK AWAL STRING
Apakah awal diawali dengan "Awal"?true
Apakah awal diawali dengan "awal"?false
Apakah awal diawali dengan "saya"?false
CEK AKHIR STRING
Apakah akhir diawali dengan "String"?true
Apakah awal diawali dengan "string"?false
Mendapatkan panjang String
Untuk mendapatkan panjang String, kita dapat menggunakan method length(). Contoh penggunaannya adalah sebagai berikut:
String panjang=”ini panjangnya 17”;
System.out.println(panjang.length());
Mendapatkan Karakter dari String
Dalam pemrograman suatu saat mungkin kita perlu mendapatkan karakter dari objek String. Untuk mendapatkannya kita menggunakan bilangan integer yang menyatakan posisi karakter pada String, dimana karakter pertama String merupakan posisi ke 0.
Method yang digunakan untuk mendapatkan karakter dari String adalah :
charAt(int bilinteger)
Contoh program5:
//nama file: DapatKarakter.java
public class DapatKarakter{
   public static void main (String []args){
   String iniString="Ini adalah String";
   System.out.println("Menampilkan semua karakter dari String");
  
  System.out.print("\nKarakter : ");
   for (int i=0 ; i < iniString.length();i++)
   {System.out.print(iniString.charAt(i)+" ");}
   }
}
Output program5:
Menampilkan semua karakter dari String
Karakter : I n i   a d a l a h   S t r i n g


Mencari Posisi Karakter Atau SubString dari String
Ada dua method yang dapat digunakan untuk mencari posisi karakter dari String dan dua method untuk mendapatkan posisi SubString dari String.


Method untuk mencari posisi karakter pada String:
indexOf(char karakter): memerlukan argumen berupa karakter dan akan mengembalikan nilai posisi indeks dari karakter yang dicari. Posisi yang dikembalikan hanyalah posisi pertama dari karakter yang ditemukan. Bila karakter tidak ditemukan maka akan mengembalikan nilai -1.
indexOf(char karakter, int indeks): sama dengan sebelumnya, tetapi memerlukan argumen tambahan yaitu indeks posisi awal pencarian dalam integer.


Method untuk mencari posisi SubString pada String:
indexOf(String str): penggunaan dan fungsi sama dengan method untuk char
indexOf(String str, int indeks): penggunaan dan fungsi sama dengan method untuk char
Contoh program6:
  //nama file: IndeksString.java
  public class IndeksString{
  public static void main (String []args){
  String kalimat="Kalimat dapat Anda ganti sesukanyaa";
  int[] indeks=new int[kalimat.length()];
  System.out.println("String yang digunakan : "+kalimat);
  System.out.println("Karakter a ditemukan pada indeks :");


  for (int i=0 ; i < kalimat.length();i++)
  {
  indeks[i]=kalimat.indexOf('a',i);
  }
  int jumlah=0;
  int k=0;
  int j;
  while(k<(kalimat.length()-1))
  {if (indeks[k]==-1)
  break;
    j=k+1;
    if(indeks[j]!=indeks[k]){
    jumlah++;
    if (jumlah==1)
    System.out.println(indeks[k]);
    System.out.println(indeks[j]);
    k=j;
    }
    else
    {k++;}
}
System.out.println("panjang String= "+kalimat.length());
System.out.println("Jumlah karakter yang ditemukan = "+jumlah+1);
}
}
Pembahasan program6:
Program diatas menyimpan indeks posisi yang ditemukan dari method dibawah ini:
Indeks[i]=kalimat.indexOf(’a’,i);
Dimana nilai i terus bertambah karena menggunakan perulangan for sehingga setiap posisi karakter a dapat ditemukan dan disimpan dalam array indeks.
Karena pada array indeks[i] terdapat nilai posisi yang sama maka untuk menampilkan posisi, kita perlu melakukan pengecekan apakah nilai berikutnya memiliki nilai yang sama, apabila tidak maka nilai posisi ditampilkan pada browser.
Method indexOf akan mengembalikan nilai -1 apabila tidak menemukan posisi karakter yang dicari sehingga apabila nilai pada array indeks ditemukan nilai –a maka akan dilakukan break pada perulangan while. 
Output program6:
String yang digunakan : Kalimat dapat Anda ganti sesukanyaa
Karakter a ditemukan pada indeks :
1
5
9
11
17
20
30
33
34
panjang String= 35
Jumlah karakter yang ditemukan = 81


Memodifikasi String
Ada dua cara untuk memodifikasi String, yaitu method replace dan trim. Method replace digunakan untuk membuat objek String baru yang melakukan penggantian atau pengubahan pada karakter tertentu dari String. Method trim digunakan untuk menghilangkan spasi / whitespace pada awal dan akhir dari String dan menyimpannya dalam objek String baru. 
Contoh program7:
  //nama file StringRepTrim.java
  public class StringRepTrim{
  public static void main(String []args)
  {
  String Stringawal="Ini-String-awal";
  System.out.println("Objek String Stringawal adalah : "+Stringawal);
  //Melakukan replace
  String Stringbaru=Stringawal.replace('-',' ');
  System.out.println("Objek Stringbaru yang baru yang berasal dari");
  System.out.println("Stringawal setelah (-) diganti spasi adalah : "+Stringbaru);
  System.out.println("Kali ini program untuk mwnghilangkan spasi di awal dan akhir String");
  String adaspasi="       banyak spasi        ";
  System.out.println("Variabel adaspasi yaitu : "+adaspasi);
  String tanpaspasi=adaspasi.trim();
  System.out.println("Kemudian setelah dilakukan trim() menjadi :"+tanpaspasi);
   }
}
Output program7:
Objek String Stringawal adalah : Ini-String-awal
Objek Stringbaru yang baru yang berasal dari
Stringawal setelah (-) diganti spasi adalah : Ini String awal
Kali ini program untuk mwnghilangkan spasi di awal dan akhir String
Variabel adaspasi yaitu :         banyak spasi
Kemudian setelah dilakukan trim() menjadi :banyak spasi


Membuat Array Karakter dari String
Anda dapat membuat array bertipe char dari variabel String dengan menggunakan method toCharArray() dari class String. Karena method ini mengembalikan array bertipe char maka kita perlu mendeklarasikan variabel bertipe array char untuk menyimpan hasil char array dari String. 
Selain method toCharArray() juga ad method getChars(). Untuk menggunakan method getChars diperlukan empat argument, yaitu:
awal posisi pada String dalam integer.
Akhir posisi pada String dalam integer.
Nama variabel array char yang digunakan untuk menyimpan.
Posisi indeks pertama untuk menyimpan karakter pertama dalam integer.

Contoh program8:
  //nama file: StringtoChar.java
  public class StringtoChar{
  public static void main(String []args)
  {
  String teks="Apa saja deh";
  char[] arrayteks=teks.toCharArray();
  System.out.println("String teks bernilai "+teks);
  System.out.println("Lalu diubah menjadi char seperti berikut :");
  for(int i=0;i
  System.out.println(arrayteks[i]);
  }
  System.out.println("Program ini mendapatkan array char dari String dengan method getChars() ");
  char[] getkarakter=new char[4];
  teks.getChars(4,8,getkarakter,0);
  System.out.println("Tampilkan array char yang diperoleh dari getChars() :");
  for(int i=0;i
  System.out.println(getkarakter[i]);
  }
  }
}
Output program8:
String teks bernilai Apa saja deh
Lalu diubah menjadi char seperti berikut :
A
p
a


s
a
j
a


d
e
h
Program ini mendapatkan array char dari String dengan method getChars()
Tampilkan array char yang diperoleh dari getChars() :
s
a
j
a


Mendapatkan Nilai Integer dari String
Kita dapat menggunakan method parseInt dari class Integer untuk mendapatkan nilai integer dari String. Misalnya :
String kode=”4553”;
int bil= Integer.parseInt(kode);
StringBuffer
Setelah membahas penggunaan String, mari mempelajari Stringbuffer yang sangat erat hubungannya dengan String dimana kita akan memerlukannya apabila kita banyak berurusan dengan String.
Kita dapat mendeklarasikan StringBuffer seperti berikut:
StringBuffer sb=new StringBuffer(”Ini adalah StringBuffer”);
Atau
StringBuffer sb=new StringBuffer();
Atau
StringBuffer sb=new StringBuffer(50);
Perhatikan angka 50 pada contoh kode tersebut. Angka ini digunakan untuk menentukan kapasitas StringBuffer. Kapasitas StringBuffer dapat membesar secara otomatis apabila diperlukan, sehingga angka 50 tersebut hanya untuk memastikan alokasi memori yang tersedia pada saat itu saja.
StringBuffer bersifat mutable yang berarti berlawanan dengan sifat String. Kita akan lebih leluasa menggunakan StringBuffer apabila kita lebih sering melakukan modifikasi pada String. Selain itu StringBuffer juga memiliki performa dan kecepatan yang jauh lebih baik apabila kita melakukan modifikasi String, terutama untuk penggabungan String(concatenation). Lebih baik kita menggunakan StringBuffer apabila kita melakukan banyak penggabungan String.


Oleh karena penggunaan StringBuffer yang sering dan umum adalah untuk penggabungan String, disini akan dibahas dua method utama dari StringBuffer, yaitu append() dan toString().
Contoh program9:
  //nama file: StringBuffer1.java
  public class StringBuffer1{
  public static void main(String []args)
  {
  StringBuffer sb=new StringBuffer();
  String kata ="berkata";
  sb.append("Saya ").append(kata).append("-kata");
  System.out.println(sb.toString());
  System.out.println(sb);
  }
}
Output program9:
Saya berkata-kata
Saya berkata-kata
Hasil dari output yang tampak pada konsol, kita dapat melihat bawa saat kita menampilkan sb yang merupakan variable StringBuffer dengan sb.toString(), kita akan mendapatkan hasil yang sama karena secara implicit pada saat ditampilkan oleh System.out.println, variable sb akan memanggil method to.String().
Semua class dalam library java memiliki method toString() karena mewarisi method ini dari 
java.lang.Object sebagai root dari semua class.


Class File
Class File merupakan langkah awal dalam mempelajari proses input output dengan Java karena File merupakan objek yang mewakili path, file atau direktori pada harddisk.


Ada 3 cara membuat objek File, yaitu :
1. Menggunakan objek String sebagai argument yang menginformasikan path untuk file atau direktori.
Contoh :
File direktori = new File(“c:/my documents/java/”);
File fileku  = new File(“c:/my documents/java/dokumen.txt”);


2. Menggunakan dua langkah dimana yang pertama untuk mrndefinisikan direktori dan yang kedua untuk file
Contoh :
File dirku    = new File(“c:/my documents/java”);
File filenya  = new File(dirku, “dokumennya.txt”);


3. Menggunakan dua argument dimana yang pertama adalah argument String yang mendefinisikan direktori, dan yang kedua adalah argument String yang mendefinisikan nama file
Contoh :
File filesaya = new File(“c:/my documents/java/”,”dokumennya.txt”);


Method dalam Class File
Selain mendefinisikan direktori atau file, objek File juga dapat digunakan untuk mendapatkan informasi file melalui method-method yang ada dalam objek File.


0 Komentar: