MODUL XIV,PBO 1

CLASS STRING (Character Class)
 

TUJUAN:
Mahasiswa mampu menggunakan fiatur kelasstring
TEORI SINGKAT:
String berisi deretan karakter. Dalam platformJava, String adalah berbentuk kelas, yag berada pada package java.lang.
Cara untuk menciptakan string:
Stringucapan=”Selamat Datang”;
Seperti halnya objek lainnya, kita dapatmenciptakan objek String dengan menggunakan keyword new dan konstruktor. KelasString mempunyai 13 konstruktor untuk memberi nilai awal objek String.
Char[] haloLarik={‘h’,’a’,’l’,’l’,’o’};
String haloString= new String(haloLarik);
System.out.println(haloString);
Kelas String bersifat immutable, sehingga sekalidiciptakan, objek string itu tidak dapat diubah. Kelas String mempunyaisejumlah method untuk memodifikasi string. Namun, karena string bersifatimmutable, method-method tersebut bersifat menciptakan string baru yang berisihasil operasi.
PELAKSANAAN PRAKTIKUM:
Listing program 1. StringDemo.java
public class StringDemo{
     publicstatic void main(String[]args){
       Stringpalidrome=”Ana lihat katak”;
       intlen=palidrome. length();
       char[]tempCharArray=new char[len];
       char[]charArray=new char[len];
       //tempatkanstring asli ek dalam array
       for(int i=0; i
            tempCharArray[i]=palidrome.charAt(i);
       }
       //balikarray
       for(int j=0; j
            charArray[j]=tempCharArray[len-1-j];
       }
       System.out.println(palidrome);
       StringpalidromeDibalik=new String(charArray);
       System.out.println(palidromeDibalik);
     }
}
Pembahasan praktek
Pada listing di atas kita langsungmenggunakan method main agar sekaligus prorgam ini dapat disaksikan hasilnya. Variabelstring yang didefinisikan adalah palidrome dengan value / isinya adalah kalimat“Ana lihat katak”. Variabel kedua yaitu turunan dari variabel palidroma yangbertipe string diturunkan menjadi variabel len dengan tipe integer. Statemenpalidrome.length() adalah melakukan penghitungan terhadap banyaknyakarakter/huruf pada variabel palidrome, sehingga variabel len menjadi sebuahvaiabel integer sebesar panjang karakter pada variabel palidroma.
Dua buah perintah yang fungsinya samaselanjutnya adalah sebuah perintah untuk menciptakan 2 buah variabel bernamatempCharArray dan satu lagi bernama charArray merupakan pendefinisian variabelarray dengan maksimal array yang ditampung sebesar len yaitu banyaknya karakterpada variabel palidrome yang dihitung dengan statemen length() di atas).
Untuk menempatkan nilai-nilai karaktertersebut kita menggunakan proses looping dengan if dimana indikator perulangankita ambilkan dari banyaknya karakter (variabel len). Kita akan menempatkanpada variabel array yang terdifinisi pada tempCharArray[]. Sehingga ketikaterjadi perulangan for pada i=0 maka tempCHarArray[0] akan terisi karakter “A”.Demikian selanjutnya sampai pada tempCharArray[14]. Kita gunakan bilangan 14dengan memberikan indikator i
Untuk selanjutnya kita akan mengisikanvariabel charArray dengan proses looping for juga, namun pengambilankarakternya kita balik. Pembalikan tersebut terletak pada nilai (len-1-j)sehingga variabel array yang dibentuk akan diproses angka array yang tertinggi,kemudian secara bertahap satu-demi satu karakter sebelumnya dimasukkan ke arraydi bawahnya. Fungsi dari looping for ini bisa dikatakan sebagai konstruktorjuga, karena dengan proses tersebut maka variabel array terisi dengan karakteryang ditunjukkan oleh proses looping.
Terakhir adalah proses menampilkan keduavariabel array di atas, baik tempCharArray[] maupun charArray[].
Dengan langsung memanggil variabelpalidrome pada statemen System.out.println(palidrome); Sedangkan untukmemanggil hasil operasi for untuk memasukkan data terbalik dari ariabel arraypalidrome terlebih dahulu membuat kelas method dengan menjadikan charArrrysebagai parameter dari kelas String, baru kemudian objek hasil bentukan tadidapat dipanggil yaitu “palidromeDibalik”. Hasilnya sebagaimana di bawah inikalimat “Ana lihat katak” dibalik menjadi “katak tahil anA”.
Hasil Running Program:
Dengan menambahkan statemen sebagaimana dibawah ini:
String gabung=palidrome.concat(“tadialam.”);
System.out.println(gabung);
String gabung2=palidrome +” bersamaAni”;
System.out.println(gabung2);
Pada penambahan statemen di atas adalahdigunakan untuk memanipulasi dalam menampilkan variabel string pada kelasstring. String gabung adalah pendefinisian variabel gabung bertipe string danmengisinya dengan value variabel palidrome dengan menambahkan di akhir datastring palidrome (perintah.concat) dengan kata-kata yang berada di dalamstatemen kurung (“tadi malam”);.  Sehingga kalimat Ana lihat kataktadi malam.Tidak ada spasi antara katak dengan tadi (kataktadi) karena pada saatmengetikkan parameter pada System.out.print(“tadi alam) juga tidak adaspasinya. Mesinya dituliskan sebagai berikut: (“ tadu malam”), ada spasi antaratanda “ dengan tadi.
Kemudian pada penciptaan objek string kedua yaitu gabung2 mengambil value dari variabel palidrome dengan operator +ditambahkan string “ bersama Ani”;. Artinya kalimat “Ana lihat katak” +“bersama Ani” sehingga menjadi “Ana lihat katak bersama Ani”. Dan pada saatditampilkan dengan perintah System.out.println(gabung2) maka yang muncul adalah“Ana lihat katak bersama Ani”. Dapat kita lihat sebagaimana di bawah ini.
Hasilnya menjadi:
Membuat program baru StringBilangan.java
public class StringBilangan{
     publicstatic void main(String[]args){
       //programini butuh dua argumen pada command line
       if(args.length==2){
            //konversistring ke bilangan
            floata=(Float.valueOf(args[0])).floatValue();
            floatb=(Float.valueOf(args[1])).floatValue();
            //kerjakanopeasi aritmatika
            System.out.println(“a+ b = ” + (a+b));
            System.out.println(“a- b = ” + (a-b));
            System.out.println(“a* b = ” + (a*b));
            System.out.println(“a/ b = ” + (a/b));
            System.out.println(“a% b = ” + (a%b));
       }
       else {
            System.out.println(“Memerlukandua argumen command-line.!”);
       }
     }
}
Membuat program StringBilangan.java akanmenunjukkan bagaimana cara kita dalam melakukan konversi dari suatu textmenjadi bilangan. Agar tidak terjadi kesalahan dalam memasukkan parameter makadisini kita memberikan statemen if dengan syarat bahwa panjang argumen adalahsebanyak 2  sebagaimana disebut “if(args.length==3)”. Dengan indikator ini maka jika kita tidak memberikanparameter atau mungkin dalam menuliskan parameter terlalu banyak sehingga lebihdari 2 maka statemen yang dijalankan bukan statemen menampilkan hasil operasi.
Untuk mengambil data parameter yang bertipestring menjadi bilangan maka kita definisikan sekaligus pada saatpendifinisikan nilai variabel a, dan b yang kita ambil dari variabel stringparameter. Perintah yang digunakan adalah
floata=(Float.valueOf(args[0])).floatValue();
floatb=(Float.valueOf(args[1])).floatValue();
artinya, bahwa data variabel a dan bbertipe float akan didapatkan dari masing-masing adalah argumen (args[0] array1) yang diubah menjadi float dengan (Float.valueOf(args[0])).floatValue90;menjadi variabel foat a. Demikian juga yang pada variabel b.
Dengan demikian variabel a dan b sudahmenjadi variabel bertipe float. Sebagai tanda bahwa variabel a dan b adalahvariabel bertipe float adalah kemampuan bilangan tersebut dikenai operasimatematis seperti penjumlahan, pengurangan, perkalian, pembagian, dan operasilainnya.
Maka pada program ini kemudiandipergunakanlah dua bilangan a dan b tersebut pada operasi sebagaimana di bawahini:
System.out.println(“a + b = ” + (a+b);    //Penambahan
System.out.println(“a – b = ” + (a-b));   //Pengurangan
System.out.println(“a * b = ” + (a*b));   //Pengalian
System.out.println(“a / b = ” + (a/b));   //Pembagian
System.out.println(“a % b = ” + (a%b));   //Sisahabis bagi
Ketika kita eksekusi langsung pada programjava tidak berhasil karena pada statemen kelas ini memerlukan dua buah argumen.Maka kita coba eksekusi diluar / pada dos prompt dengan memberkan dua argumensebagaimana ditampilkan di bawah ini.
Sekarang coba buka melalui Command prompt:
Sebagai mana berikut:
Java StringBilangan 4.56 7.65
Java StringBilangan 10.2 5.345
Membuat class baru BilanganString.java
public class BilanganString{
     publicstatic void main(String [] args){
       doubleb=858.48;
       Strings=Double.toString(b);
       intdot=s.indexOf(‘.’);
       System.out.println(“Bilangan”+s+” adalah :”);
       System.out.println(dot+”digit sebelum titik desimal.”);
       System.out.println((s.length()- dot – 1) + “digit setelah itik desimal.”);
     }
}
Kelas ini merupakan program untukmengkonversi suatu bilangan menjadi string yang kemudian dimanfaatkan untukmendapatkan hitungan banyaknya digit suatu bilangan yang berada di depan maupundibelakang koma. Variabel b yang didefinisikan sebagai tipe variabel doublesehingga dapat diisi dengan bilangan pecahan dengan batas 32 digit. Kemudiandikonversi menjadi string dengan perintah toString(b) dan pada baris yang samasekaligus meletakkan hasil konversian bilangan menjadi string tersebut ke dalamvariabel s. Sehingga value variabel s adalah 858.48 namun bukan bilangan tetapidalam string dan bila kita coba menggunakan variabel tersebut pada operasimatematis maka tidak akan bisa.
Statemen selanjutnya yaitu intdot=s.indexOf(‘.’); sebagai menghitung atau mengindex letak karakter ‘.’ pada angka-angka858.48 yang sudah bernilai karakter untuk kemudian menyimpannya ke dalamvariabel dot. Dengan maksud bahwa index karakter ‘.’ akan memberikan informasiletak koma di dalam deret karakter angka tersebut berada di mana. Jika dotmemberikan informasi bahwa karakter ‘.’ berada pada index ke 4 (penghitunganmulai dari 0), maka informasi yang diberikan adalah 3 digit bukan 4 digit.
Untuk menampilkan tidak masalah lagi,tinggal kita melakukan pemanggilan terhadap variabel-variabel yang terdefinisi.Yaitu untuk memanggil 858.48 kita dapat menggunakan s maupun b juga tidakmasalah. Sedangkan dot digunakan untuk memanggil letak karakter ‘.’ dalamvariabel tipe integer, sedangkan untuk mengetahui berapa titik di belakang komakita gunakan sifat kebalikan dari hukum penjumlahan, dimana panjang karakterdapat dikurangi banyaknya digit karakter bilangan tersebut dikurangi 1 karenakita tahu bahwa penghitungan index maupun array dalam java dimulai dengan 0.Selesai sudah script di atas dapat kita lihat hasilnya sebagaimana di bawahini.
Hasil running program:
Membuat listing program class NamaFile.java:
public class NamaFile{
     privateString fullPath;
     privatechar pemisahPath, pemisahExtension;
     publicNamaFile(String str, char pemisah, char extension) {
       fullPath=str;
       pemisahPath=pemisah;
       pemisahExtension=extension;
     }
     publicString extension(){
       intdot=fullPath.lastIndexOf(pemisahExtension);
       returnfullPath.substring(dot+1);
     }
     //ambilnama file tanpa extension
     publicString namaFile(){
       intdot=fullPath.lastIndexOf(pemisahExtension);
       intpemisah=fullPath.lastIndexOf(pemisahPath);
       returnfullPath.substring(pemisah + 1, dot);
     }
     publicString path(){
       intpemisah=fullPath.lastIndexOf(pemisahPath);
       returnfullPath.substring(0, pemisah);
     }
}
Membuat file pemanggil TestNamaFile.java
public class TestNamaFile{
     publicstatic void main(String[] args){
       finalString FPATH=”/home/mem/index.html”;
       NamaFilemyHomePage=new NamaFile(FPATH,’/’,’.’);
       System.out.println(“Full path = ” +FPATH);
       System.out.println(“Extension = ” +myHomePage.extension());
       System.out.println(“Nama File = ” +myHomePage.namaFile());
       System.out.println(“Path      = “+myHomePage.path());
     }
}
Untuk listring di atas, merupakan manipulamethod-method string yang dipergunakan untuk mengetahui bagian-bagian suatufile dengan melihat karakter penyusunnya. Ada dua buah class, dimana kelasNamaFile adalah kelas untuk mendefinisikan method identifier sedangkanTestNamaFile digunakan untuk melakukan pemanggilan terhadap method-method yangdidefinisikan pada kelas NamaFile.
Dalam file class NamaFile diciptakankonstruktor dengan parameter String str, char pemisah, char extension yangdipergunakan untuk mendefinisikan variabel fullPath, pemisahPath danpemisahExtension.
Method yang diciptakan adalah  method getter dengan return value semuanya Stringyang menggunakan beberapa pola manipulasi string tersebut menjadi integer dankemudian menggunakan angka-angka posisi karakter untuk mengambil beberapakarakter yang diinginkan. Sebagaimana penjelasan kami satu per satu methodterkait pada class NamaFile.
public Stringextension(){
intdot=fullPath.lastIndexOf(pemisahExtension);
returnfullPath.substring(dot+1);
}
Method ini bernama extension termasukgetter method yang menggunakan variabel pemisahExtension sebagai indikatoruntuk mengetahui posisi suatu karakter khusus di dalam parameter konstruktoryaitu karkater ‘.’ titik. Dengan mendapatkan posisi index namun dihitung daribelakang sehingga mengetahui dimana posisi tanda titik tersebut. Dengandiketahui letak tanda titik tersebut maka kita dapat melakukan pemanggilan padasebagian string dari fullPath yang terdifinisi sebagai str pada konstruktor diatas. Dan wal hasil method extension ini menapilkan karakter dari belakangsebelum method ini menemukan tanda titik.
public String namaFile(){
int dot=fullPath.lastIndexOf(pemisahExtension);
int pemisah=fullPath.lastIndexOf(pemisahPath);
return fullPath.substring(pemisah + 1, dot);
}
Pada method namaFile ini akan menampilkannama file dengan mengidentifikasi karakter khusus yang didefinisikan pada  konstruktor yaitu ‘/’dan ‘.’ yang disebutdengan nama variabel pemisahExtension dan pemisahPath. Dan ini dimanfaatkandengan mengkonversi posisi karakter tersebut ke dalam bilangan integer dandidefinisikan ke dalam variabel dot dan pemisah. Dengan mendapatkan bilanganinteger dot dan pemisah sebagai index dari String  fullPath tersebut kita dapat mengambilsubstring dari fullPath dengan menuliskan pada paraeter methodsubstring(pemisah+1,dot) dimana pemisah adalah index awal pengambilan karakterdan dot adalah index karakter akhir yang diambil. Sehingga kita akanmendapatkan nama file yang dimaksud adalah karakter diantara tanda ‘/’ dantanda ‘.’.
public String path(){
     intpemisah=fullPath.lastIndexOf(pemisahPath);
     returnfullPath.substring(0, pemisah);
     }
}
Yang terakhir adalah method untuk megetahuiposisi path (direktori dimana file tersebut di simpan). Ini sama sederhananyadengan pengambilan string dari variabel str / fullPath. Cukup dengan methodsubstring(0,pemisah). Parameter pemisah ini diperoleh dari index karakter ‘/’yang diperoleh dengan menghitung dari belakang karena jika dari depan jikasebagaimana kasus fullPath ini ada beberapa tanda ‘/’ tentu saja akan kelirudalam menuliskan return hasil method path() ini. Dengan demikian maka methodini akan menuliskan karakter demi karakter mulai dari index ke 0 sampai ketanda ‘/’.
Membahas pada script class TestNamaFilesebagaimana beberapa praktikum sebelumnya. Pertama menuliskan variabel stringFPATH yang berisi file dan alamat di dalam suatu storage. Kemudian untukmemanggil method dari kelas lain maka perlu mendefinisikan objek dari kelasNamaFile dengan nama myHomePage yang kemudian kita gunakan untuk memanggil satuper satu method pada class NamaFile yaitu extension (untuk memanggilsubstring(dot+1) dari string fullPath dihitung dari belakang), namaFile untukmemanggil substring(pemisah+1,dot), dan path (untuk memanggil substring(0,pemisah).Hasilnya sebagai berikut:
Hasil Running Program:
TUGAS:
Buatlahprogram yang dapat menghitung cacah kata dari suatu kalimat. Andaikankalimat=”Saya suka nasi goreng yang tidak pedas”. Maka program akan memberikanhasil:
Kalimat=  Saya suka nasi goreng yang tidakpedas.
Terdiriatas kata-kata:
saya
suka
nasi
goreng
yang
tidak
pedas
Cacahkata=7
Jawab:
public class CacahKalimat{
     publicstatic void main(String[]args){
       Stringkalimat=”Saya suka nasi goreng yang tidak pedas dan tidak jugaberminyak”;
       intkata=kalimat.length();
       intcacah=1;
       char[]Huruf=new char[kata];
       for(int i=0; i
            Huruf[i]=kalimat.charAt(i);
       }
       System.out.println(“Kalimat= “+kalimat);
       System.out.println(“==========================”);
                  for(int i=0; i
                  if(Huruf [i]==’ ‘)
                        {System.out.println(“”);
                        cacah=cacah+1;}
                        else
                        System.out.print(Huruf[i]);
                  }
       System.out.println(“”);
       System.out.println(“==========================”);
       System.out.println(“CacahKata = “+cacah);
       System.out.println(“==========================”);
     }
}
Hasil Running Program:
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s