Anda di halaman 1dari 34

LAPORAN PRAKTIKUM

PEMROGRAMAN OBJEK 2

MODUL 7

String, Character, dan Regular Expression

29 April 2020

Nama : Yesi Sofia


NIM : 3411181140
Kelas :B

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN INFORMATIKA

UNIVERSITAS JENDERAL ACHMAD YANI

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

1. Fundamental Mengenai Character dan String


Karakter adalah blok bangunan mendasar dari program sumber Java. Setiap program
terdiri dari rangkaian karakter yang ketika dikemlompokkan Bersama secara bermakna
ditafsirkan oleh compiler java sebagai serangkaian instruksi yang digunakan untuk
menyelesaikan suatu tugas. Program mungkin berisi literal karakter. Literal karakter adalah
nilai integer yang direpresentasikan sebagai karakter dalam tanda kutip tunggal. Sebagai
contoh, ‘z’ merepresentasikan nilai integer dari z, dan ‘\t’ mewakili nilai integer dari
karakter tab. Nilai literal karakter adalah nilai integer dari karakter dalam set karakter
Unicode.

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:

“Clark Kent” (Nama)


“Jl. Ciseureuh 123” (Alamat)
“Metropolis, Indonesia” (Kota, Negara)
“(022)3458279” (Nomor telepon)

String literal dapat dideklarasikan sebagai berikut ini:

String color = “blue”;

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.

StringBuilder untuk membuat dan memanipulasi informasi string dinamis. Yaitu,


string yang dapat di modifikasi. Setiap StringBuilder mampu mentimpan sejumlah karakter
yang ditentukan oleh kapasitasnya. Jika kapasitas StringBuilder dilampaui, kapasitas
diperluas untuk mengakomodasi karakter tambahan.

3. Regular Expressions, Class Pattern dan Class Matcher


Regular Expression (regex) adalah String yang menggambarkan pola pencarian untuk
karakter yang cocok dalam String lainnya. Ekspresi semacam itu berguna utuk
memvalidasi input dan memastikan bahwa data dalam format tertentu. Misalnya, kode pos
harus terdiri dari 5 digit, dan nama belakang harus terisi hanya huruf, spasi, apostrof, dan
tanda hubung. Salah satu aplikasi Regex adalah untuk memfasilitasi pembangunan
kompilator. Seringkali, aplikasi besar dan regex kompleks digunakan untuk memvalidasi
sintaks dari suatu program. Jika kode program tidak cocok dengan regex, compiler
mengetahui bahwa ada kesalahan sintaks dalam kode.

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

EKSEKUSI PROGRAM DAN HASIL ANALISA


2.1 Program 7-1
A. Program 7-1 StringConstructors.java
Source code

public class StringConstructors {


public static void main(String [] args) {
char[] charArray = {'b','i','r','t','h','
','d','a','y'};
String s = new String("hello");
//menggunaan kosntruktor string
String s1 = new String();
String s2 = new String(s);
String s3 = new String(charArray);
String s4 = new String(charArray,6,3);

System.out.printf("s1=%s\ns2 =%s\ns3 =%s\ns4 =%s\n",


s1,s2,s3,s4);
}
}

Hasil eksekusi Program

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 .

2.2 Program 7-2


A. Program 7-2 StringMiscellaneous
Source code

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 :");

for(int count = s1.length() - 1; count >=0;count--) {


System.out.printf("%c",s1.charAt(count));
}

s1.getChars(0, 5, charArray, 0);


System.out.printf("%nThe character array is :");

for(char character : charArray) {


System.out.print(character);
System.out.println();
}
}
}

Hasil eksekusi Program

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.

2.3 Program 7-3


A. Program 7-3 StringCompare.java

5
Source code

public class StringCompare {


public static void main(String[] args){
String s1 = new String("Hellow");
String s2 = "GoodBye";
String s3 = "Happy Birthday";
String s4 = "happy birthday";
System.out.printf("s1 = %s\ns2 = %s\ns3 = %s\ns4 =
%s\n\n",s1,s2,s3,s4);

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));

if (s3.regionMatches(0, s4, 0, 5))


System.out.println("First 5 Characters of s3 and s4
match");
else
System.out.println("First 5 Characters of s3 and s4 do
not match");
if (s3.regionMatches(true, 0, s4, 0, 5))
System.out.println("First 5 Characters of s3 and s4
match with case ignored");
else
System.out.println("First 5 Characters of s3 and s4 do
not match");
}
}

6
Hasil eksekusi program

Analisis
Dalam program ini membandingkan antar string seperti membandingkan S1 dengan S2
lalu S2 dibandingkan dengan S3 begitu seterusnya

2.4 Program 7-4


1. Jelaskan perbedaan antara == dan equals
 Method equals dan operator “==”, keduanya dapat digunakan untuk
membandingkan objek. Namun, terdapat perbedaan yang sangat jelas bahwa equals
adalah sebuah method sedangkan == adalah sebuah operator. Karena Java tidak
mendukung untuk operator overloading, maka operator “==” akan berperilaku
identik untuk setiap objek. Namun, equals() adalah sebuah method di mana dapat
di-overriding dan logika untuk membandingkan objek dengan method ini dapat
disesuaikan dengan kebutuhan
2. Bagaimana CompareTo bekerja?jelaskan!
 compareTo membanding kan dua buah String berdasarkan urutan leksikografis nya
(posisi kamus). Penulisan compareTo adalah dengan menuliskan "google"

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;

public class StringComparison {

private static final Scanner SCANNER = new Scanner(System.in);

public static void main(String[] args) {


Random r = new Random();

String k1 = "London";
String k2 = "Jakarta";
String k3 = "Random";
String k4 = "Scanner";
String k5 = "iya";

int rand = r.nextInt(4);


if (rand == 0) {
System.out.printf("Nama Ibukota Negara Inggris ?");

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;
}

Hasil eksekusi Program


Jika jawaan benar

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

2.5 Program 7-5


A. Program 7-5 StringStardEnd.java
Source code
public class StringStartEnd {
public static void main(String[] args) {
String[] strings={"started", "starting", "ended",
"ending"};
for(String string : strings) {
System.out.printf("\"%s\"starts
with\"st\"\n", string);
}

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);
}
}
}
}
}

Hasil eksekusi program

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.

2.6 Program 7-6


A. Program 7-6 StringIndexMethods.java
Source code

public class StringIndexMethods {


public static void main(String[] args) {
String letters="abcdefghijklm";
System.out.printf("'c' is located at index %d\n",
letters.indexOf('c'));
System.out.printf("'a' is located at index %d\n",
letters.indexOf('a',1));
System.out.printf("'$' is located at index %d\n\n",
letters.indexOf('$'));

System.out.printf("Last 'c' is located at index %d\n",


letters.lastIndexOf('c'));
System.out.printf("Last 'a' is located at index %d\n",
letters.lastIndexOf('a',25));
System.out.printf("Last '$' is located at index %d\n\n",
letters.lastIndexOf('$'));

System.out.printf("\"def\" is located at index %d\n",


letters.indexOf("def"));
System.out.printf("\"def\" is located at index %d\n",
letters.indexOf("def",7));
System.out.printf("\"hello\" is located at index
%d\n\n", letters.indexOf("hello"));

System.out.printf("Last \"def\" is located at index


%d\n", letters.lastIndexOf("def"));

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"));

}
}

Hasil eksekusi program

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.

2.7 Program 7-7


A. Program 7-7 SubString.java
Source code

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));
}
}

Hasil eksekusi program

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

2.8 Program 7-8


A. Program 7-8 StringConcatenation.java
Source code
public class StringConcatenation {
public static void main(String [] args) {
String s1 = "Happy";
String s2 = "Birthday";
System.out.println("s1 = "+s1+"\n"+ "s2 =
"+s2+"\n");

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");
}
}

Hasil eksekusi program

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 +

2.9 Program 7-9


A. Program 7-9 StringMiscellaneous2.java
Source code
public class StringMiscellaneous2 {
public static void main(String[] args){
String s1 = "hello";
String s2 = "GOODBYE";
String s3 = " spaces ";

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());

char[] charArray = s1.toCharArray();


System.out.printf("s1 as a character array = ");

for (char character : charArray)


System.out.print(character);

System.out.println();
}
}

Hasil eksekusi program

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.

2.10 Program 7-10


A. Program 7-10 StringBuilderConstructors.java
Source code
public class StringBuilderConstructors {
public static void main(String [] args){
StringBuilder buffer1 = new StringBuilder();
StringBuilder buffer2 = new StringBuilder(10);
StringBuilder buffer3 = new
StringBuilder("hello");

System.out.printf("buffer1 = \"%s\"\n", buffer1);


System.out.printf("buffer2 = \"%s\"\n", buffer2);
System.out.printf("buffer3 = \"%s\"\n", buffer3);
}
}

Hasil eksekusi program

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

public class StringBuilderCaplen {


public static void main (String[] args){
StringBuilder buffer = new
StringBuilder("Hello, how are you?");

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());
}
}

Hasil eksekusi program

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.

2.12 Program 7-12


A. Program 7-12 StringBuilderChars.java
Source code
public class StringBuilderChars {
public static void main(String[] args) {
StringBuilder buffer = new
StringBuilder("hello there");

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));

char[] charArray = new


char[buffer.length()];
buffer.getChars(0, buffer.length(),
charArray, 0);
System.out.print("The characters are: ");

for (char character : charArray)


System.out.print(character);

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
}
}

Hasil eksekusi program

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

2.13 Program 7-13


2.1 Program 7-13 StringBuilderAppend.java
Source code
public class StringBuilderAppend {
public static void main(String[] args){
Object objectRef="hello";
String string="goodbye";
char[] charArray = {'a','b','c','d','e','f'};
boolean booleanValue = true;
char characterValue='Z';
int integerValue = 7;
long longValue = 10000000000L;
float floatValue=2.5f;

20
double doubleValue = 33.333;

StringBuilder lastBuffer=new StringBuilder("last


buffer");
StringBuilder buffer=new StringBuilder();
buffer.append(objectRef)
.append("%n")
.append(string)
.append("%n")
.append(charArray)
.append("%n")
.append(charArray,0,3)
.append("%n")
.append(booleanValue)
.append("%n")
.append(integerValue)
.append("%n")
.append(longValue)
.append("%n")
.append(floatValue)
.append("%n")
.append(doubleValue)
.append("%n")
.append(lastBuffer);

System.out.printf("buffer contains
%n%s%n",buffer.toString());

}
}

Hasil eksekusi program

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

2.14 Program 7-14


A. Program 7-14 StringBuilderInsertDelete.java
Source code
public class StringBuilderInsertDelete {
public static void main (String [] args) {
Object objectRef = "hello";
String string = "goodbye";
char[] charArray = {'a', 'b', 'c', 'd', 'e', 'f'};
boolean booleanValue = true;
char characterValue = 'K';
int integerValue = 7;
long longValue = 10000000;
float floatValue = 2.5f;
double doubleValue = 33.3333;

StringBuilder buffer = new StringBuilder();

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);

System.out.printf("buffer after deletes:\n%s\n",


buffer.toString());
}
}

Hasil eksekusi program

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 alamat boolean


public static boolean validateAddress(String
adress){
return adress.matches("\\d+\\s+([a-zA-
Z]+|[a-zA-Z]+\\s[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.

2.16 Program 7-16


A. Program 7-16 Validate.java
Source code
import java.util.Scanner;

public class Validate {


private static Scanner scanner;

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();

//validasi masukan use dan tampilan pesan error


System.out.println("\nValidate Result :");

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");
}
}

Hasil eksekusi program

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;

public class StringCompareTo {


public static void main(String[] args) throws
ParseException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-


dd");
Date date1 = sdf.parse("2019-12-31");
Date date2 = sdf.parse("2020-04-21");

System.out.println("date1 : " + sdf.format(date1));


System.out.println("date2 : " + sdf.format(date2));

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?");
}

Hasil eksekusi program

Analisis
Program ini membandingkan antar tanggal menggunakan compareTo dan method
exception

3.2 Program StringWhitespaceAndDup.java


28
Source code
import java.util.Scanner;
public class StringWhitespaceAndDup {
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
System.out.println("Masukkan Nama : ");
String nama = scanner.nextLine();
//nama = nama.trim();
String [] charAt = nama.split("\\s");
int jml, i;
for( i = 0; i < charAt.length; i++) {
jml=1;
for(int j=i+1; j<charAt.length; j++) {
if(charAt[i].equals(charAt[j])) {
jml++;
charAt[j] = "0";
}

}
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);
}

Hasil eksekusi program

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

Anda mungkin juga menyukai