PEMROGRAMAN OBJEK 2
MODUL 7
29 April 2020
2020
DAFTAR ISI
DAFTAR ISI .............................................................................................................................................. i
BAB I ......................................................................................................................................................... 1
PEMBAHASAN ........................................................................................................................................ 1
1. Fundamental Mengenai Character dan String ................................................................................. 1
2. Class StringBulider ......................................................................................................................... 1
3. Regular Expressions, Class Pattern dan Class Matcher ................................................................... 2
BAB 2 ......................................................................................................................................................... 4
EKSEKUSI PROGRAM DAN HASIL ANALISA ................................................................................. 4
2.1 Program 7-1 ................................................................................................................................ 4
2.2 Program 7-2 ................................................................................................................................ 4
2.3 Program 7-3 ................................................................................................................................ 5
2.4 Program 7-4 ................................................................................................................................ 7
2.5 Program 7-5 .............................................................................................................................. 10
2.6 Program 7-6 .............................................................................................................................. 12
2.7 Program 7-7 .............................................................................................................................. 13
2.8 Program 7-8 .............................................................................................................................. 14
2.9 Program 7-9 .............................................................................................................................. 15
2.10 Program 7-10 ............................................................................................................................ 17
2.11 Program 7-11 ............................................................................................................................ 18
2.12 Program 7-12 ............................................................................................................................ 19
2.13 Program 7-13 ............................................................................................................................ 20
2.14 Program 7-14 ............................................................................................................................ 22
2.15 Program 7-15 ............................................................................................................................ 24
2.16 Program 7-16 ............................................................................................................................ 25
BAB 3 ....................................................................................................................................................... 28
TUGAS AKHIR ...................................................................................................................................... 28
3.1 Program StringCompareTo.java ................................................................................................ 28
3.2 Program StringWhitespaceAndDup.java ................................................................................... 28
DAFTAR PUSTAKA ................................................................................................................................ ii
i
BAB I
PEMBAHASAN
String adalah urutan karakter yang diperlakukan sebagai satu kesatuan. String dapat
mencakup huruf angka, dan berbagai karakter khusus seperti +, -, *, / dan $. String adalah
objek dari kelas String. literal string (disimpan dalam memori sebagai objek String) ditulis
sebagai urutan karakter dalam tanda kutip ganda, seperti pada:
2. Class StringBulider
Objek StringBuilder seperti objek String, kecuali bahwa objek tersebut dapat di
modifikasi. Secara internal, objek-objek ini diperlakukan sebagai variable array. Pada titik
dimana pun, Panjang dan isi urutan dapat diubah melalui metode invokasi. String memang
selalu digunakan kecuali StringBuilder menawarkan keuntungan dalam hal kode yang lebih
1
sederhana atau kinerja yang lebih baik. Misalnya, jika perlu menggabungkan sejumlah
besar string, menambahkan objek StringBuilder lebih efisien.
Class String menyediakan beberapa metode untuk melakukan operasi Regex, yang
paling sederhana adalah operasi pencocokan. Method String matches menerima string yang
menentukan regex dan cocok dengn isi objek string yang dipanggil ke regex. Method
mengembalikan nilai boolean yang menunjukan apakah perbandingan berhasil.
Regex terdiri dari karakter literal dan symbol khusus. Gambar dibawah menentukan
beberapa kelas karakter yang telah ditetapkan yang dapat digunakan dengan regex. Kelas
karakter adalah escape sequence yang mewakili sekelompok karakter. Digit adalah
karakter numerik apapun. Karakter kata dalah huruf apapun (besar atau kecil), digit apapun
atau karakter garisbawah. Karakter white-space adalah spasi, tab, carriage return, baris
baru, atau feed formulir. Setiap kelas karakter mencocokan saru karakter dalam string yang
disamakan dengan regex.
2
3
BAB 2
Analisis
Program StringConstructors ini melakukan inisiasi objek string baru menggunakan
konstruktor non argument kelas string dan memberikan ke s1 dan s2 sedangkan untuk
melakukan inisiasi s3 menggunakan konstruktor string kelas yang mengambil
arraychar sebagai argument .
4
public class StringMiscellaneous {
public static void main(String []args) {
String s1 = "hello there";
char[] charArray = new char [5];
System.out.printf("s1:%s",s1);
System.out.printf("\nLength of s1",s1.length());
System.out.printf("%nThe string reversed os :");
Analisis
Program ini menggunakan method length,charAt, dan getCharts yang didalam setiap
methodnya memiliki penggunaan yang berbeda yakni yang output baris pertama
memanggil string yang kedua menghitung panjangnya string yang ketiga mengambil
stringya dengan cara mengambil dari belakang ke depan yang nanti outputnya di
bacanya terbalik.
5
Source code
if(s1.equals("hello"))
System.out.println("s1 equals \"hello\"");
else
System.out.println("s1 does not equal \"hello\"");
if (s1 == "hello")
System.out.println("s1 is the same object as
\"Hello\"");
else
System.out.println("s1 is not the same object as
\"Hello\"");
if (s3.equalsIgnoreCase(s4))
System.out.printf("%s equals %s with case ignored\n",
s3,s4);
else
System.out.printf("s3 does not equal s4");
System.out.printf("\ns1.compareTo(s2) is %d",
s1.compareTo(s2));
System.out.printf("\ns2.compareTo(s1) is %d",
s2.compareTo(s1));
System.out.printf("\ns1.compareTo(s1) is %d",
s1.compareTo(s1));
System.out.printf("\ns3.compareTo(s4) is %d",
s3.compareTo(s4));
System.out.printf("\ns4.compareTo(s3) is %d",
s4.compareTo(s3));
6
Hasil eksekusi program
Analisis
Dalam program ini membandingkan antar string seperti membandingkan S1 dengan S2
lalu S2 dibandingkan dengan S3 begitu seterusnya
7
.compareTo ("codepolitan") Metode ini akan mengembalikan sebuah nilai int yang
dapat diartikan sebagai berikut:
Jika nilai yang dikembalikan kurang dari nol, maka String yang pertama
memiliki posisi kamus lebih dulu
Jika nilai yang dikembalikan sama dengan nol maka kedua String memiliki
posisi kamus yang sama
Jika nilai yang dikembalikan lebih dari nol maka String yang kedua (yang
dikirimkan ke parameter compareTo) memiliki posisi kamus lebih dulu.
3. Bagaimana regionMatches bekerja?jelaskan!
Method boolean regionMatches() akan menguji apakah suatu region dari dua
string equal atau tidak. Jadi substring dari suatu objek String dibandingkan dengan
suatu substring dari argumen lainnya.
Terdapat dua model dari method ini yaitu:
public boolean regionMatches(int toffset, String other, int ooffset, int len)
dengan method ini pengujian akan dilakukan dengan case sensitive.
public boolean regionMatches(boolean ignoreCase, int toffset, String other,
int ooffset, int len) dengan method ini pengujian dapat memilih untuk
mempertimbangkan apakah menggunakan ketentuan khusus.
4. Program 7-4 StringComparision.java
Source code
import java.util.Scanner;
import java.util.Random;
String k1 = "London";
String k2 = "Jakarta";
String k3 = "Random";
String k4 = "Scanner";
String k5 = "iya";
8
String j1 = SCANNER.nextLine();
if (j1.equalsIgnoreCase(k1)) {
System.out.printf("Jawaban anda benar");
} else {
System.out.printf("Jawaban Anda Salah, yang benar
ialah =" + k1);
}
} else if (rand == 1) {
System.out.printf("Nama Ibukota Negara Indonesia ?");
String j2 = SCANNER.nextLine();
if (j2.equalsIgnoreCase(k2)) {
System.out.printf("Jawaban anda benar");
} else {
System.out.printf("Jawaban Anda salah, yang benar
ialah =" + k2);
}
} else if (rand == 2) {
System.out.printf("Untuk membuat bilangan acak pada
java menggunakan perintah ?");
String j3 = SCANNER.nextLine();
if (j3.equalsIgnoreCase(k3)) {
System.out.printf("Jawaban anda benar");
} else {
System.out.printf("Jawaban anda Salah, yang benar
ialah = " + k3);
}
} else if (rand == 3) {
System.out.printf("Untuk menginputkan dari keyboard
menggunakan perintah ?");
String j4 = SCANNER.nextLine();
if (j4.equalsIgnoreCase(k4)) {
System.out.printf("Jawaban anda benar");
} else {
System.out.printf("Jawaban anda salah");
}
} else if (rand == 4) {
System.out.printf(" Menurut Anda apakah yessi lucu ?");
String j5 = SCANNER.nextLine();
if (j5.equalsIgnoreCase(k5)) {
System.out.printf("Jawaban anda benar");
} else {
System.out.printf("Jawaban anda salah");
}
}
return;
}
9
Jika jawaban salah
Analisis
Dalam program ini terdapat 5 soal yang di tampilkan secara randomyang nantinya user
akan mengetik jawabannya dan harus sesuai dengan key yang ada di source code
tersebu, jika jawaan yang dimasukan salah program akan menampilkan jawaban yang
sesuai
10
System.out.println();
for(String string : strings) {
if(string.startsWith("art", 2)) {
System.out.printf("\"%s\" starts with
\"art\"at position 2\n", string);
}
System.out.println();
for(String stringh : strings) {
if(stringh.endsWith("ed")){
System.out.printf("\"%s\" ends
with \"ed\"\n", string);
}
}
}
}
}
Analisis
11
Pada program ini menggunakan method mengambil argumen String . Kondisi dalam
pernyataan if (baris 13) menentukan apakah setiap String dalam array dimulai dengan
karakter "st" Jika demikian, method mengembalikan true dan aplikasi mencetak
String itu Jika tidak, method mengembalikan salah dan tidak ada yang terjadi.
12
System.out.printf("Last \"def\" is located at index
%d\n", letters.lastIndexOf("def",25));
System.out.printf("Last \"hello\" is located at index
%d\n", letters.lastIndexOf("hello"));
}
}
Analisis
Pada Program ini menggunakan method indexOf dan lastIndexOf yang masing-
masing mengambil String sebagai argumen pertama, indeks kemunculan karakter
dalam string yang ditentukan jika -1 maka karakter / substring yang ditentukan tidak
ditemukan secara khusus String.
13
public class SubString {
public static void main(String [] args) {
String letters = "abcdefghijklmabcdefghijklm";
System.out.println("Substring from index 20 to end
is "+ letters.substring(20)+ "\n");
System.out.println("Substring from index 3 up to,
but not including 6 is " +letters.substring(3, 6));
}
}
Analisis
program ini sama seperti sebelumnya yakni mengambil string di index 20 dan yang
kedua mengambil index yang ketiga dan berakhir di index 5 karena index 6 tidak di
ambil programinijuga menggunakan substring dan Letter substring yang mengambil
satu argumen bilangan bulat
14
String s3 = s1.concat(s2);
System.out.println("Result of s1.concat(s2) "+
s1.concat(s2)+"\n");
System.out.println("s1 after concatenation =
"+s3+"\n");
}
}
Analisis
Pada program ini menggunakan Class String yang menyediakan beberapa method yang
mengembalikan salinan string yang dimodifikasi atau yang mengembalikan array
karakter dimana terdapat method concatenation yang artinya penggabungan antar
string s1 digabungkan dengan s2 .operator yang digunakan ialah +
15
System.out.printf("s1 = %s\ns2 = %s\ns3 = %s\n\n",
s1, s2, s3);
System.out.printf("Replace 'l' with 'L' in s1:
%s\n\n", s1.replace ('l', 'L'));
System.out.printf("s1.toUpperCase() =
%s\n",s1.toUpperCase());
System.out.printf("s2.toLowercase() =
%s\n\n",s2.toLowerCase());
System.out.printf("s3 after trim = \"%s\"\n\n",
s3.trim());
System.out.println();
}
}
Analisis
16
Pada program ini terdapat beberapa method yang digunakan diantaranya method
String, String toUpperCase, String keLowerCase, string TRIM, String toCharArray
karena setiap objek di Java memiliki method toString yang memungkinkan program
untuk memperoleh representasi string objek.
Analisis
Pada program ini menggunakan StringBuilderConstructors yang dimana pada Strings
tersebut mencetak StringBuilder dengan isi buffer1, buffer2, buffer3. Dengan begitu
hasil output dari program seperti pada gamar diatas.
17
2.11 Program 7-11
A. Program 7-11 StringBuilderCaplen.java
Source code
System.out.printf("buffer = %s\nlength =
%d\ncapacity = %d\n\n", buffer.toString(), buffer.length(),
buffer.capacity());
buffer.ensureCapacity(75);
System.out.printf("New capacity = %d\n\n",
buffer.capacity());
buffer.setLength(10);
System.out.printf("New Length = %d\nbuffer
= %s\n", buffer.length(), buffer.toString());
}
}
Analisis
18
Program ini menyimpan sejumlah karakter yang kapasitasnya sudah di tentukan seperti
program ini awal kapasitasnya 35 dan panjang stringnya hanya 19 jadi semuanya
terbaca tetapi setelah dimodifikasi kapasitasnya menjadi 10 maka panjang stringnya
pun yang terbacanya sampai char yang ke 10.
System.out.printf("buffer = %s\n",
buffer.toString());
System.out.printf("Character at 0:
%s\nCharacter at 4 : %s\n\n", buffer.charAt(0),
buffer.charAt(4));
buffer.setCharAt(0, 'H');
buffer.setCharAt(6, 'T');
System.out.printf("\n\nbuffer = %s",
buffer.toString());
buffer.reverse();
System.out.printf("\n\nbuffer = %s\n",
buffer.toString());
19
}
}
Analisis
Program StringBuilderChars ini yaitu dilakukan pembuatan kelas objek baru yang
bernama buffer bertujuan untuk menginisiasi chart, Program ini menggunakan method
charAt,setCharAt,getChars dan reverse yang berfungsi sebagai mengambil string,
mengatur string dan membalikkan string yang ada di dalam charArray
20
double doubleValue = 33.333;
System.out.printf("buffer contains
%n%s%n",buffer.toString());
}
}
21
Analisis
Dalam program ini menggunakan method StringBuilderAppend yaitu method yang
digunakan uintuk menambahkan string, program ini bertujuan untuk menampilkan tipe
data float,double dan lain lain
buffer.insert(0, objectRef)
.insert(0, " ")
.insert(0, string)
.insert(0, " ")
.insert(0, charArray)
.insert(0, " ")
.insert(0, charArray, 3, 3)
22
.insert(0, " ")
.insert(0, booleanValue)
.insert(0, " ")
.insert(0, characterValue)
.insert(0, " ")
.insert(0, integerValue)
.insert(0, " ")
.insert(0, longValue)
.insert(0, " ")
.insert(0, floatValue)
.insert(0, " ")
.insert(0, doubleValue);
System.out.printf("buffer after
inserts:\n%s\n\n", buffer.toString());
buffer.deleteCharAt(10);
buffer.delete(2, 6);
Analisis
23
Dalam program ini menggunakan method StringBuilderInsert dan StringBuilderDelete.
StringBuilder insert merupakan method yang digunakan untuk menyisipkan string
yang ditentukan pada posisi yang yang ditetapkan, lalu StringBuilder delete merupakan
method yan digunakan untuk menghilangkan urutan karakter atau menghapus index
tertentu.
2.15 Program 7-15
B. Program 7-15 ValidateInput.java
Source code
public class ValidateInput {
//valdasi firstName
public static boolean validatefirstName(String
firstName){
return firstName.matches("[A-Z] [a-zA-
Z]*");
}
//validasi lastName
public static boolean validatelastName(String
lastName){
return lastName.matches("a-zA-Z]+(['-][a-
zA-Z]+)");
//validasi kota
public static boolean validateCity (String city){
24
return city.matches("([a-zA-Z]+|[a-zA-
Z]+\\s[a-zA-Z]+)");
}
//validasi negara
public static boolean validateState(String state){
return state.matches("([a-zA-Z]+|[a-zA-
Z]+\\s[a-zA-Z]+)");
}
//validasi kodepos
public static boolean validateZip(String zip){
return zip.matches("\\d{5}");
}
//validasi telephone
public static boolean validatePhone(String phone){
return phone.matches("[1-9]\\d{2}-[1-
9]\\d{2}-\\d{4}");
}
}
Analisis
Dalam program ini merupakan regular expressions yaitu string yang menggambarkan
pola pencarian untuk karakter yang cocok dalam string lainnya dan program ini
merupakan mainclass jadi tidak mengeluarkan output. Karakter kata adalah huru besar
atau kecil , karakter whitespace adalah spasi, tab, carriage return dan lain-lain.
25
public static void main(String[]args) {
scanner = new Scanner(System.in);
System.out.println("please enter first name :");
String firstName = scanner.nextLine();
System.out.println("please enter last name :");
String lastName = scanner.nextLine();
System.out.println("please enter adddress :");
String address = scanner.nextLine();
System.out.println("please enter city :");
String city = scanner.nextLine();
System.out.println("please enter state :");
String state = scanner.nextLine();
System.out.println("please enter zip :");
String zip = scanner.nextLine();
System.out.println("please enter phone :");
String phone = scanner.nextLine();
if(!ValidateInput.validatefirstName(firstName)) {
System.out.println("invalid first name");
}else if
(!ValidateInput.validatelastName(lastName)) {
System.out.println("invalid last name");
}else if
(!ValidateInput.validateAddress(address)) {
System.out.println("invalid address");
}else if (!ValidateInput.validateCity(city)) {
System.out.println("invalid city");
}else if (!ValidateInput.validateState(state)) {
System.out.println("invalid state");
}else if (!ValidateInput.validateZip(zip)) {
System.out.println("invalid zip code");
}else if (!ValidateInput.validatePhone(phone)) {
System.out.println("invalid phone number");
}else
26
System.out.println("valid input. thank
you");
}
}
Analisis
Dalam program ini memanggil method yang tadi suah dibuat pada class validateInput
yang kemudian user menginput sesuai yang di perintahkan dan jika salah dalam proses
penginputannya maka akan gagal .
27
BAB 3
TUGAS AKHIR
3.1 Program StringCompareTo.java
Source code
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
if (date1.compareTo(date2) > 0) {
System.out.println("Date1 is after Date2");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date1 is before Date2");
} else if (date1.compareTo(date2) == 0) {
System.out.println("Date1 is equal to Date2");
} else {
System.out.println("How to get here?");
}
Analisis
Program ini membandingkan antar tanggal menggunakan compareTo dan method
exception
}
if(jml>1 && charAt[i] !="0")
System.out.println("Kata duplikatnya adalah
: "+ charAt[i]);
}
nama = nama.replaceAll("\\s", "");
System.out.print("\nNilai yang diberikan :"+nama);
}
Analisis
Dalam Program ini diperintahkan untuk mencari kata duplikat dan membuang karakter
whitespace menggunakan method charAt,length,replace.
29
Bab 4
TUGAS GIT
Membuat Project modul 7
30
Graph
31
DAFTAR PUSTAKA
Yuniarti.R.[2020].Pemrograman Objek II
ii