Monday, December 26, 2016

Bab 3. Soal & Penyelesaian Java



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