3
String
String
merupakan suatu deret atau runtun karakter. Kata, kalimat, dan frase ada
string. Pesan “Bhinneka Tunggal Ika” merupakan salah satu contoh string.
Kelas String
Tipe string paling sederhana dalam Java
adalah suatu objek dari kelas String.
Objek tersebut tidak dapat diubah setelah ia diciptakan.
Soal dan
Penyelesaian
1.
Tulislah sebuah program yang menciptakan objek String dari array char.
Penyelesaian
// Menciptakan objek String dari array char.
public class
StringdariArrayChar {
public static void main(String args[]) {
char c[] = {'J', 'a', 'v', 'a'};
String s1 = new
String(c);
String s2 = new
String(s1);
System.out.println(s1);
System.out.println(s2);
}
}
Keluaran Program
Java
Java
2. Tulislah sebuah
program untuk objek String yang
merupakan subhimpunan dari array byte.
Penyelesaian
public class SubstringDariArrayChar {
public static void main(String args[]) {
byte ascii[] = {65, 66, 67, 68, 69, 70 };
String s1 = new
String(ascii);
System.out.println(s1);
String s2 = new
String(ascii, 2, 3);
System.out.println(s2);
}
}
Keluaran Program
ABCDEF
CDE
3.
Berikanlah sebuah program yang menunjukkan beberapa sifat dari suatu
objek String.
Penyelesaian
public class
WatakString {
public static void main(String[] args) {
String alfabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println(alfabet);
System.out.println("String ini memuat "
+ alfabet.length() +
"karakter.") ;
System.out.println("Karakter pada indeks 7 adalah "
+ alfabet.charAt(7));
System.out.println("Indeks dari karakter Z adalah "
+ alfabet.indexOf('Z'));
System.out.println("Kode hash untuk string ini adalah
"
+ alfabet.hashCode());
}
}
Keluaran Program
ABCDEFGHIJKLMNOPQRSTUVWXYZ
String ini memuat 26karakter.
Karakter pada indeks 7 adalah H
Indeks dari karakter Z adalah 25
Kode hash untuk string ini adalah 218640813
4.
Berikanlah suatu program yang bisa membaca masukan angka dan string dari
papanketik oleh pengguna.
Penyelesaian
import java.util.Scanner;
public class
StringMasukan {
public static void main(String[] args) {
Scanner papanketik = new Scanner(System.in);
System.out.println("Masukkan dua angka bulat");
System.out.println("dipisahkan dengan spasi:");
int n1, n2;
n1 = papanketik.nextInt();
n2 = papanketik.nextInt();
System.out.println("Anda memasukkan " + n1 + " dan " + n2);
System.out.println("Selanjutnya masukkan dua angka.");
System.out.println("Angka pecahan juga OK.");
double d1, d2;
d1 =
papanketik.nextDouble();
d2 =
papanketik.nextDouble();
System.out.println("Anda memasukkan " + d1 + " dan " + d2);
System.out.println("Selanjutnya masukkan dua kata:");
String s1, s2;
s1 = papanketik.next();
s2 = papanketik.next();
System.out.println("Anda memasukkan \"" +
s1 + "\" dan
\"" + s2 + "\"");
s1 = papanketik.nextLine();
//Untuk menggantikan '\n'
System.out.println("Selanjutnya masukkan sebuah baris teks:");
s1 = papanketik.nextLine();
System.out.println("Anda memasukkan: \"" + s1 +
"\"");
}
}
Keluaran Program
Masukkan dua angka bulat
dipisahkan dengan spasi:
46 78
Anda memasukkan 46 dan 78
Selanjutnya masukkan dua angka.
Angka pecahan juga OK.
98.45 34.23
Anda memasukkan 98.45 dan 34.23
Selanjutnya masukkan dua kata:
Semangat Pagi
Anda memasukkan "Semangat" dan
"Pagi"
Selanjutnya masukkan sebuah baris teks:
Hari yang baru dengan tantang baru pula
Anda memasukkan: "Hari yang baru dengan tantang
baru pula"
5.
Substring merupakan sebuah string dengan karakter-karakter yang
merupakan bagian dari string lain. Kelas String
memiliki metode substring untuk
mengekstrak substring. Berikan suatu program untuk mengilustrasikan penggunaan
metode ini.
Penyelesaian
public class
Substring {
public static void
main(String[] args) {
String alfabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println(alfabet);
System.out.println("Substring dari indeks 4 sampai indek 9
adalah "
+ alfabet.substring(4 ,
9)) ;
System.out.println("Substring dari indeks 5 sampai indeks 5
adalah "
+ alfabet.substring(5,
5));
System.out.println("Substring dari indeks 4 sampai indeks 5
adalah "
+
alfabet.substring(4,5));
System.out.println("Substring dari indeks 0 sampai indeks 10
adalah "
+
alfabet.substring(0,10));
System.out.println("Substring dari indeks 7 sampai akhir adalah
"
+ alfabet.substring(7));
}
}
Keluaran Program
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Substring dari indeks 4 sampai indek 9 adalah EFGHI
Substring dari indeks 5 sampai indeks 5 adalah
Substring dari indeks 4 sampai indeks 5 adalah E
Substring dari indeks 0 sampai indeks 10 adalah
ABCDEFGHIJ
Substring dari indeks 7 sampai akhir adalah
HIJKLMNOPQRSTUVWXYZ
6.
Berikanlah sebuah program Java untuk mengubah tiap karakter di dalam
suatu string menjadi huruf besar dan huruf kecil menggunakan metode toUpperCase dan toLowerCase.
Penyelesaian
public class
HurufBesarKecil {
public static void main(String[] args) {
String pagi = "PagiHariYangselaluIndah";
System.out.println(pagi);
String pagiA =
pagi.toLowerCase();
System.out.println(pagiA);
String pagiB =
pagi.toUpperCase();
System.out.println(pagiB);
}
}
Keluaran Program
PagiHariYangselaluIndah
pagihariyangselaluindah
PAGIHARIYANGSELALUINDAH
7.
Operator + telah digunakan
untuk melakukan operasi penyambungan string. Berikanlah suatu program untuk
menunjukkan bagaimana operasi ini dapat dipakai untuk membentuk string yang
lebih besar dari dua string yang lebih kecil.
Penyelesaian
public class
PenyambunganString {
public static void main(String[] args) {
String pertama = "Bukit";
String terakhir = "Tolong";
System.out.println(pertama +
terakhir);
System.out.println(pertama +
" " + terakhir);
System.out.println(terakhir
+ " " + pertama);
String nama = pertama +
" " + terakhir;
System.out.println(nama);
}
}
Keluaran Program
BukitTolong
Bukit Tolong
Tolong Bukit
Bukit Tolong
8.
Metode indexOf dan lastIndexOf dari kelas String menghasilkan nomor indeks dari
sebuah karakter di dalam suatu string. Berikan suatu program untuk
mengilustrasikan penggunaan dari kedua metode tersebut.
Penyelesaian
public class
PencarianKarakter {
public static void main(String[] args) {
String str = "Gunung
Sinabung meletus pada awal tahun 2014.";
System.out.println(str);
int i = str.indexOf('s');
System.out.println("Indeks
pertama dari 'g' adalah " + i);
int
j = str.indexOf('g', i + 1);
System.out.println("Indeks
berikutnya dari g adalah " + j ) ;
int k = str.indexOf('a', j + 1) ;
System.out.println("Indeks
dari 'a' adalah " + k);
k =
str.lastIndexOf('s');
System.out.println("Indeks
terakhir dari 's' adalah " + k);
System.out.println(str.substring(k));
}
}
Keluaran Program
Gunung Sinabung meletus pada awal tahun 2014.
Indeks pertama dari 'g' adalah 22
Indeks berikutnya dari g adalah -1
Indeks dari 'a' adalah 10
Indeks terakhir dari ' s ' adalah 22
s pada awal tahun 2014.
9.
Metode replace dari kelas String mengganti setiap kemunculan
suatu karakter dengan karakter lain. Buktikan penggunaan metode ini.
Penyelesaian
public class
GantiKarakter {
public static void main(String[] args) {
String danau = "Danau Toba" ;
System.out.println(danau);
System.out.println(danau.replace('T', 'B'));
System.out.println(danau.replace('a','@'));
System.out.println(danau);
}
}
Keluaran Program
Danau Toba
Danau Boba
D@n@u Tob@
Danau Toba
10.
Tunjukkan sebuah program untuk menggunakan metode valueOf dari kelas String
untuk mengkonversi nilai-nilai primitif menjadi string-string.
Penyelesaian
public class
UjiValueOf {
public static void main(String[] args) {
boolean b = true;
char c = '@';
int n = 44;
double x = 3.1415926535897932;
System.out.println("b= " + b);
System.out.println("c= " + c);
System.out.println("n= " + n);
System.out.println("x= " + x);
String strb = String.valueOf(b);
String strc = String.valueOf(c);
String strn = String.valueOf(n);
String strx = String.valueOf(x);
System.out.println("strb = " + strb);
System.out.println("strc = " + strc ) ;
System.out.println("strn = " + strn);
System.out.println("strx = " + strx);
}
}
Keluaran Program
n= 44
x= 3.141592653589793
strb = true
strc = @
strn = 44
strx = 3.141592653589793
11.
Berikan suatu program untuk mengubah string menjadi nilai bertipe
primitif menggunakan metode parseInt.
Penyelesaian
public class
UjiParseInt {
public static void main(String[] args) {
String hariIni = "Feb
07, 2014";
String stringHariIni = hariIni.substring(4, 6);
int hariIniInt = Integer.parseInt(stringHariIni);
int mingguDepanInt = hariIniInt + 7;
String mingguDepan =
hariIni.substring(0, 4) + mingguDepanInt
+ hariIni.substring(6) ;
System.out.println("Tanggal hari ini adalah " +
hariIni);
System.out.println("Hari ini adalah " +
stringHariIni);
System.out.println("Minggu depan adalah hari " +
mingguDepanInt);
System.out.println("Tanggal minggu depan adalah " + mingguDepan);
}
}
Keluaran Program
Tanggal hari ini adalah Feb 07, 2014
Hari ini adalah 07
Minggu depan adalah hari 14
Tanggal minggu depan adalah Feb 14, 2014
12.
Tulislah
sebuah program yang menggunakan metode getChars,
yang dapat dipakai untuk mengekstrak lebih dari satu karakter pada suatu waktu.
Penyelesaian
public class
DemogetChars {
public static void main(String args[]) {
String s = "Ini ada demo
penggunaan metode getChars.";
int awal = 8;
int akhir = 21;
char buf[] = new
char[akhir - awal];
s.getChars(awal, akhir, buf,
0);
System.out.println(buf);
}
}
Keluaran Program
demo pengguna
13. Metode equals
dan equalsIgnoreCase dapat dipakai
untuk membandingkan string-string. Tulislah suatu program untuk
mengilustrasikan penggunaannya.
Penyelesaian
public class
Demoequals {
public static void main(String args[]) {
String s1 = "Hallo";
String s2 = "Hallo";
String s3 = "Biarlah";
String s4 = "HALLO";
System.out.println(s1 +
" equals " + s2 + "
-> " +
s1.equals(s2));
System.out.println(s1 +
" equals " + s3 + "
-> " +
s1.equals(s3));
System.out.println(s1 +
" equals " + s4 + "
-> " +
s1.equals(s4));
System.out.println(s1 +
" equalsIgnoreCase " + s4
+ " -> " +
s1.equalsIgnoreCase(s4));
}
}
Keluaran Program
Hallo equals Hallo -> true
Hallo equals Biarlah ->
false
Hallo equals HALLO -> false
Hallo equalsIgnoreCase HALLO
-> true
14. Tulislah sebuah program yang membedakan operator =
= dari metode equals.
Penyelesaian
// equals() versus ==
public class
DemoequalsVersusOperator {
public static void main(String args[]) {
String s1 = "Hallo";
String s2 = new
String(s1);
System.out.println(s1 +
" equals " + s2 + "
-> " +
s1.equals(s2));
System.out.println(s1 +
" == " + s2 + " ->
" + (s1 == s2));
}
}
Keluaran Program
Hallo equals Hallo -> true
Hallo == Hallo -> false
Variabel s1
meruju ke objek String yang
diciptakan oleh “Hallo”. Objek yang
ditunjuk oleh s2 diciptakan dengan s1 sebagai penginisialisasi. Jadi, isi
dari kedua objek String adalah sama, tetapi keduanya adalah objek yang berbeda.
Ini berarti bahwa s1 dan s2 tidak merujuk ke objek yang sama,
oleh karena itu, operator = =
bernilai false.
15. Tulislah sebuah program yang mengurutkan array
yang memuat string-string. Program harus menggunakan metode compareTo untuk menetapkan penataan
urutan pada pengurutan bubble.
Penyelesaian
//pengurutan bubble untuk mengurutkan string-string
public class
DemocompareTo {
static String arr[] = {
"Anda", "bila",
"senyum", "tawa", "minat", "membawaku",
"alam", "kelabu",
"semakin", "percaya",
"dinda", "senja", "terang",
"kenangan", "berkesan",
"kekal"
};
public static void main(String args[]) {
for(int j = 0; j <
arr.length; j++) {
for(int i = j + 1; i
< arr.length; i++) {
if(arr[i].compareTo(arr[j]) < 0) {
String t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
System.out.println(arr[j]);
}
}
}
Keluaran Program
Anda
alam
berkesan
bila
dinda
kekal
kelabu
kenangan
membawaku
minat
percaya
semakin
senja
senyum
tawa
terang
16.
Kelas String merupakan salah satu kelas yang
paling berguna dalam Java. Tetapi instans (objek) dari kelas ini memiliki
keterbatasan, yaitu ia tidak dapat diubah setelah diciptakan. Pada
contoh-contoh objek kelas String
yang telah diberikan, ketika sebuah string dimodifikasi, hal itu harus
dilakukan dengan menciptakan suatu objek String
yang baru, baik secara eksplisit maupun implisit. Java menyediakan kelas StringBuffer untuk menyimpan
objek-objek string yang perlu diubah.
Berikanlah suatu program untuk menciptakan objek-objek
dari kelas StringBuffer.
Penyelesaian
public class
ObjekStringBuffer {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer(10);
System.out.println("buf = " + buf);
System.out.println("buf.length() = " + buf.length());
System.out.println("buf.capacity() = " +
buf.capacity());
}
}
Keluaran Program
buf =
buf.length() = 0
buf.capacity() = 10
17. Berikanlah suatu program untuk mengilustrasikan
fleksibilitas objek-objek dari kelas StringBuffer.
Program hanya menciptakan satu objek, buf,
yang kemudian dimodifikasi beberapa kali menggunakan operator penyambungan dan
metode append.
Penyelesaian
public class
ModifikasiObjekStringBuffer {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer(10);
buf.append("Hari ini");
System.out.println("buf = " + buf);
System.out.println("buf.length()= " + buf.length());
System.out.println("buf.capacity() = " +
buf.capacity());
buf.append(" mendung menyelimuti ");
System.out.println("buf = " + buf);
System.out.println("buf.length() = " + buf.length());
System.out.println("buf.capacity() = " +
buf.capacity());
buf.append("matahari.");
System.out.println("buf = " + buf);
System.out.println("buf.length()= " + buf.length());
System.out.println("buf.capacity() = " +
buf.capacity());
}
}
Keluaran Program
buf = Hari ini mendung
menyelimuti
buf.length() = 29
buf.capacity() = 29
buf = Hari ini mendung
menyelimuti matahari.
buf.length()= 38
buf.capacity() = 60
18. Berikan suatu program untuk mengganti objek-objek StringBuffer menggunakan metode setCharAt dan insert.
Penyelesaian
public class
GantiObjekStringBuffer {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer();
buf.append("Hari ini awan menyelimuti mentari.");
System.out.println("buf= " + buf);
System.out.println("buf.length()= " + buf.length());
System.out.println("buf.capacity()= " +
buf.capacity());
buf.setCharAt(11, 'w');
System.out.println("buf= " + buf);
buf.setCharAt(12, '0' ) ;
System.out.println("buf= " + buf);
buf.insert(13, "r");
System.out.println ("buf = " + buf);
}
}
Keluaran Program
buf= Hari ini awan menyelimuti
mentari.
buf.length()= 34
buf.capacity()= 34
buf= Hari ini awwn menyelimuti
mentari.
buf= Hari ini aww0 menyelimuti
mentari.
buf= Hari ini aww0r
menyelimuti mentari.
19. Berikanlah suatu program untuk mengkonversi objek StringBuffer menjadi objek String menggunakan metode toString.
Penyelesaian
public class
StringBufferMenjadiString {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer("Ia tak ingin kau bersedih,");
System.out.println("buf= " + buf);
System.out.println("buf.length()= "+ buf.length());
System.out.println("buf.capacity()= "+
buf.capacity());
String str = buf.toString();
System.out.println("str= " + str);
System.out.println("str.length()= " + str.length());
buf.append(" " +
str.substring(0, 17) + "bila engkau
sedang sendiri, ");
System.out.println("buf= " + buf);
System.out.println("buf.length()= " + buf.length());
System.out.println("buf.capacity()= " +
buf.capacity());
System.out.println("str = " + str);
}
}
Keluaran Program
str= Ia tak ingin kau
bersedih,
str.length()= 26
buf= Ia tak ingin kau
bersedih, Ia tak ingin kau bila engkau sedang sendiri,
buf.length()= 72
buf.capacity()= 86
str = Ia tak ingin kau
bersedih,
20. Metode setLength
dan reverse dapat dipakai untuk
menetapkan panjang dan membalikkan objek-objek StringBuffer. Berikan suatu program untuk mengilustrasikannya.
Penyelesaian
public class
UjiSetLength {
public static void main(String[] args) {
StringBuffer buf
= new StringBuffer("Mari
sirami cinta yang tulus di dalam hati.");
System.out.println("buf= " + buf);
System.out.println("buf.length() = " + buf.length());
System.out.println("buf.capacity() = " +
buf.capacity());
buf.setLength(60);
System.out.println("buf= " + buf);
System.out.println("buf.length() = " + buf.length());
System.out.println("buf.capacity()= " +
buf.capacity());
buf .setLength(30);
System.out.println("buf= " + buf);
System.out.println ("buf.length( ) = " + buf.length( )
) ;
System.out.println("buf.capacity()= " +
buf.capacity());
buf.reverse( ) ;
System.out.println("buf= " + buf);
System.out.println("buf.length() = " + buf.length());
System.out.println("buf.capacity() = "+
buf.capacity());
}
}
Keluaran Program
buf= Mari sirami cinta yang
tulus di dalam hati.
buf.length() = 43
buf.capacity() = 59
buf= Mari sirami cinta yang
tulus di dalam hati.
buf.length() = 60
buf.capacity()= 120
buf= Mari sirami cinta yang
tulus d
buf.length( ) = 30
buf.capacity()= 120
buf= d sulut gnay atnic imaris
iraM
buf.length() = 30
buf.capacity() = 120
No comments:
Post a Comment